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