Во время выполнения.getRuntime().availableProcessors()
Я пытаюсь проверить производительность системы во время запуска программы
я ссылаюсь на этот пост получить системную информацию уровня ОС
при этом Runtime.getRuntime().availableProcessors();
execute я получил ответ 4
я прочитала availableProcessors() но он говорит, что этот метод возвращает количество процессоров
- может ли кто-нибудь объяснить, что означает количество процессоров ?
- почему я получаю 4 в результате ?
Я использую Windows 7 core i5 4gp.
большое спасибо
5 ответов
количество процессоров-это в основном количество исполнительных механизмов, способных запускать ваш код. Одним из вариантов i5 является 4-ядерный процессор серии i5-7. Это могут быть физически разные процессоры (даже если они существуют внутри одного чипа) или логические процессоры при использовании hyper-threading.
см.http://en.wikipedia.org/wiki/Intel_Core#Core_i5 и http://en.wikipedia.org/wiki/Hyper-threading Для больше деталь.
Как вы читали, availableProcessors() - это метод, который возвращает number of processors available to the JVM
. 4 означает количество процессоров, доступных в настоящее время для JVM.
эти строки вернуть number of logical cores
в Windows и других операционных систем.
на компьютере с квад-сердечника сердечника i7 поддержка Многопоточность, он вернется 8.
на компьютере с четырехъядерных процессоров Q6700 этот метод возвращает 4.
У вас многоядерный процессор (в вашем случае, похоже, это Линфилд). Каждое ядро считается отдельным процессором (отдельным процессором) для целей информации, поскольку каждое ядро может выполнять инструкции одновременно с другими.
Он не дает никаких ядер, доступных для процесса jvm. он может быть больше, чем фактический, если включена hyper threading.
в этом контексте "процессор" - это" оборудование, способное к независимому выполнению", т. е. cpu базовый.
Это не "пакет процессора" - единственный аппаратный блок, который вы покупаете (это фактически 4 независимых процессора в одном пакете)