От IBM:Почему -Xrs снижают производительность
-Xrs
Отключает сигнал обработки в JVM.
-Xrs
Установка -Xrs ™ предотвращает запуск время среды Java от обработки каких-либо внутри или снаружи, генерируемых сигналов, таких как SIGSEGV и SIGABRT. Любые сигналы, которые возникают, обрабатываются обработчиками операционной системы по умолчанию. Отключение обработки сигналов в JVM снижает производительность примерно на 2-4%, в зависимости от приложения.
-Xrs: синхронизация
В системах UNIX, эта опция отключает обработку сигнала в JVM для SIGSEGV, SIGFPE, SIGBUS, SIGILL, SIGTRAP, andSIGABRT сигналов. Тем не менее, JVM по-прежнему обрабатывает сигналы SIGQUIT и SIGTERM, среди прочих. Как и в случае -Xrs, использование -Xrs: sync снижает производительность примерно на 2-4%, в зависимости от приложения.
Примечание: Установка этого параметра предотвращает отвалы не генерируется с помощью виртуальной машины Java для сигналов, таких как SIGSEGV и SIGABRT, потому что виртуальная машина больше не перехватывать эти сигналы.
Из моего понимания, -Xrs
действительно используется, чтобы предотвратить отвалов от генерируется, когда некоторые сигналы ОС перехватываются.
Поскольку JVM больше не перехвата и обработки этих сигналов, он будет стоять разумеется, это было бы увеличения производительности, не снижения его как утверждает IBM.
Почему -Xrs
снижает производительность?
BTW, влияние опроса safepoint обычно не такое большое. Обработчики сигналов также используются для неявных проверок нулевого уровня, для проверки переполнения стека (например, * стека banging *), для барьеров с удаленной памятью при вызове собственных методов для быстрого JNI_GetField для неявной обработки граничных случаев с целым делением и для некоторых других оптимизаций. – apangin
@apangin Я знаю, что JVM использует трюки для других операций, но не знаком с ними. Я рекомендую вам написать ответ, описывающий их. (И отредактируйте, если есть неточность, я помню, что HotSpot сделал тест, но не написал.) – chrylis
Вы правы, HotSpot делает 'test' на x86 для опроса safepoint. Извините, я перепутал это с ударом стека. Я думаю, что все эти трюки JVM заслуживают специального поста; надеюсь написать это в ближайшее время. – apangin