Я рассматриваю параметры конфигурации JVM для запуска Alfresco, главным образом этот документ Alfresco Wiki. Одна из рекомендаций - использовать флаги JVM -Xcomp
и -Xbatch
. Обоснование этого:
Если вы хотите, чтобы Hotspot прекомпилировал классы, вы можете добавить [-Xcomp и -Xbatch]. Это, однако, значительно увеличит время запуска сервера, но будет выделять недостающие зависимости, которые могут быть удалены позже.
Из того, что я читал в другом месте о флажках -Xcomp
и -Xbatch
, мне интересно, действительно ли они приносят какую-либо пользу.
-
-Xcomp
получает HotSpot для компиляции всего кода с максимальной оптимизацией, тем самым отказываясь от любого профилирования, которое VM проведет через стандартное управление системой. -
-Xbatch
останавливает компиляцию фона, что означает поток, который заставлял код скомпилировать блоки до завершения компиляции. Однако после завершения компиляции ранее заблокированный поток не будет запускать скомпилированный код, он все равно будет запускать интерпретируемый код. Это было изменение в Java 6 (Mustang) - до Mustang, потоки, заблокированные для компиляции по наличию флага-Xbatch
, гарантированно выполнялись в скомпилированном коде, как только компиляция была завершена. Поэтому я предполагаю, что рекомендация флага-Xbatch
является реликтом запуска Alfresco на старых виртуальных машинах.
Есть ли у кого-нибудь мысли? Моя склонность состоит в том, чтобы избавиться от этих двух флагов и полагаться на виртуальную машину, чтобы все было в порядке.
Я хотел бы добавить две вещи, прежде всего, что у меня пока нет доступа к экземпляру Alfresco, чтобы проверить это, а во-вторых, я действительно не знаю, какая спецификация машины содержит Alfresco, кроме этого, глядя при других параметрах конфигурации он должен быть 64-битной виртуальной машиной. Несмотря на это, я надеюсь, что у сообщества будет полезный вклад, возможно, из общей точки настройки HotSpot.