Почему Java, работающая в режиме -server, говорит, что версия «смешанный режим»? Когда я это вижу, значит ли это, что JVM действительно не загружалась в режиме чистого сервера?
Почему Java, работающая в режиме -server, говорит, что версия смешанная?
Ответы (2)
режим сервера не означает "не смешанный". Это разные настройки.
Смешанный означает, что JVM будет смешивать скомпилированный и интерпретируемый код. При желании вы можете переключиться в полностью интерпретируемый режим с помощью переключателя -Xint (обычно вы не хотите этого делать).
Режим сервера означает, что компилятор горячей точки будет работать с настройками сервера. Общее предположение состоит в том, что виртуальные машины в режиме сервера работают долго, поэтому оптимизация будет выполняться с учетом этого.
Поэтому, если вы видите смешанный режим, это не признак того, что ваша виртуальная машина не работает в режиме сервера.
РЕДАКТИРОВАТЬ: Если вы хотите проверить, что действительно работает, попробуйте вывод
System.out.println(System.getProperty("java.vm.name"));
System.out.println(System.getProperty("java.vm.info"));
По крайней мере, для Sun VM или OpenJDK это даст вам подсказку. Вы могли заметить, что вы всегда будете запускать виртуальную машину сервера, если вы работаете в 64-битной системе.
-Xcomp
только для скопированных. А ты не хочешь этого делать. / Между прочим, у Server HotSpot есть собственный интерпретатор (он принимает информацию о профилировании, что делает его немного медленнее, чем стандартный интерпретатор).
- person Tom Hawtin - tackline; 04.02.2011
И клиентский, и серверный компиляторы Hotspot включены в среду выполнения Java.
По умолчанию клиентский компилятор включен, но для интенсивных серверных приложений вы можете запустить серверный компилятор с параметром времени выполнения -server. Виртуальная машина Hotspot обычно работает в смешанном режиме, как видно из выходных данных -version. Смешанный режим означает, что Hotspot динамически компилирует байт-коды Java в машинный код при соблюдении ряда критериев, включая количество запусков метода через интерпретатор. Смешанный режим выполнения обычно обеспечивает наилучшую производительность.