gpt4 book ai didi

java - 为什么-Xrs会降低性能

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:42 27 4
gpt4 key购买 nike

来自 IBM:

-Xrs

Disables signal handling in the JVM.

-Xrs

Setting -Xrs prevents the Java™ run time environment from handling any internally or externally generated signals such as SIGSEGV and SIGABRT. Any signals that are raised are handled by the default operating system handlers. Disabling signal handling in the JVM reduces performance by approximately 2-4%, depending on the application.

-Xrs:sync

On UNIX systems, this option disables signal handling in the JVM for SIGSEGV, SIGFPE, SIGBUS, SIGILL, SIGTRAP, andSIGABRT signals. However, the JVM still handles the SIGQUIT and SIGTERM signals, among others. As with -Xrs, the use of -Xrs:sync reduces performance by approximately 2-4%, depending on the application.

Note: Setting this option prevents dumps being generated by the JVM for signals such as SIGSEGV and SIGABRT, because the JVM is no longer intercepting these signals.

https://www-01.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/com.ibm.java.aix.70.doc/diag/appendixes/cmdline/Xrs.html

据我了解,-Xrs 确实用于防止在拦截某些操作系统信号时生成转储。

由于 JVM 不再拦截和处理这些信号,因此有理由认为这会提高性能,而不是像 IBM 声称的那样降低性能。

为什么 -Xrs 会降低性能?

最佳答案

因为safepoints和 VM 操作,以及 JIT 可以执行的其他优化(如果您允许它管理信号)。

JVM 偶尔不得不执行一些需要它全局暂停执行(“stop the world”)的操作,例如某些大规模的垃圾收集、热重载或内部重新编译类等。为了做到这一点,它必须确保所有正在运行的线程同时遇到障碍并暂停,执行操作,然后释放线程。

HotSpot(可能还有其他 JVM)用来实现安全点的一种技术是对段错误的巧妙滥用:它设置一个实际上不用于任何数据的内存页面,然后每个线程定期尝试从该页面读取.当不需要 VM 操作时,读取成功且开销非常低,并且线程保持运行。

当 JVM 确实需要执行 VM 操作时,它会使该内存页无效。 The next time each thread hits a safepoint, it now causes a segfault ,这让 JVM 重新获得对该线程执行的控制;它一直保持到 VM 操作完成,重置哨兵页面,并重新启动所有线程。

当您禁用 SIGSEGV 处理时,JVM 必须使用其他技术来同步安全点,这些技术的效率低于委托(delegate)给处理器的内置内存保护。

此外,JVM 在分析方面发挥了一些重要作用(本质上类似于 CPU 的分支预测器)。它使用的优化之一是,如果它检测到某个 null 检查几乎从不为 null,它会忽略该检查并依赖于段错误(昂贵,但在这种情况下很少见)来捕获 null。此优化还需要自定义处理 SIGSEGV。

关于java - 为什么-Xrs会降低性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com