Java VM, настраивающийся - Xbatch и-Xcomp

Я смотрю на параметры конфигурации JVM для выполнения Под открытым небом, главным образом этот документ о Находящейся на воздухе Wiki. Одна из рекомендаций состоит в том, чтобы использовать флаги JVM -Xcomp и -Xbatch. Выравнивание этого:

Если Вы хотите иметь предварительную компиляцию Горячей точки классы, можно добавить [-Xcomp и-Xbatch]. Это, однако, значительно увеличит время запуска сервера, но выделит недостающие зависимости, которые могут быть поражены позже.

Из того, что я читал в другом месте о -Xcomp и -Xbatch флаги, я задаюсь вопросом, предоставляют ли они действительно какое-либо преимущество.

  • -Xcomp заставляет HotSpot компилировать весь код заранее с максимальной оптимизацией, таким образом предшествующей любое профилирование, что VM пройдет через стандартное выполнение системы.
  • -Xbatch фоновая компиляция остановок, означая поток, который заставил код быть скомпилированными блоками до компиляции, завершена. Однако после того, как компиляция закончена, ранее заблокированный поток не выполнит скомпилированный код, это все еще выполнит интерпретируемый код. Это было изменением у (мустанга) Java 6 – перед Мустангом, потоки, заблокированные для компиляции присутствием -Xbatch флаг, как гарантировали, будет работать в скомпилированном коде, как только компиляция была завершена. Поэтому я предполагаю что рекомендация -Xbatch флаг является пережитком выполнения Под открытым небом на более старом VMs.

У кого-либо есть какие-либо мысли? Мой наклон состоит в том, чтобы избавиться от этих двух флагов и полагаться на VM для разбираний в вещах.

Я хотел бы добавить две вещи, в первую очередь, что у меня еще нет доступа к Находящемуся на воздухе экземпляру для тестирования этого на, и во-вторых я действительно не знаю то, что спецификация машины размещает Под открытым небом кроме этого путем рассмотрения других параметров конфигурации, это должен быть VM на 64 бита. Несмотря на это, я надеюсь, что у сообщества будет некоторый полезный вход, возможно, с общей Настраивающей горячую точку точки зрения.

33
задан Bill the Lizard 27 July 2012 в 23:01
поделиться

2 ответа

Вообще говоря, всегда предпочтительно, чтобы компилятор HotSpot настраивался сам. Даже использование Server VM (-server) по умолчанию для 64-битных и некоторых машин «серверного класса».

-Xbatch был предназначен в основном для отладки, как описано в блоге Стива Голдмана , на который вы указали:

Таким образом, переключатель -Xbatch не особенно полезен даже во времена, предшествующие появлению мустанга. Это в некоторой степени полезно для разработчиков jvm, так как имеет тенденцию делать запуск более предсказуемым и воспроизводимым.

-Xcomp исключает возможность сбора информации для эффективной компиляции.Из сообщения Алекса Тернера :

Можно подумать, что -Xcomp будет хорошей идеей с точки зрения производительности. Однако это не так! Компилятор JIT использует эти 1000 итераций перед компиляцией для сбора информации о том, как метод должен быть скомпилирован для оптимальной эффективности. -Xcomp лишает его возможности делать это, и, таким образом, мы действительно можем видеть падение производительности.

Не обращая внимания на производительность, я никогда не видел, чтобы эти флаги использовались для обнаружения недостающих зависимостей ( и это может не сработать, если какой-то код все еще интерпретируется ), поэтому ИМХО, я бы избавился от обоих.

26
ответ дан 27 November 2019 в 19:32
поделиться

Alfresco - это система управления корпоративным контентом. Я не уверен, как флаги влияют на его производительность. Затем в примечании на той же странице говорится…

- Однако это значительно увеличит время запуска сервера, но подчеркнет недостающие зависимости, которые могут быть обнаружены позже. ...

ИМХО, автор толком не имел в виду прирост производительности. Он написал это как средство проверки наличия всех зависимостей.

0
ответ дан 27 November 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: