【问题标题】:Java 7 and -XX:TraceDeoptimizationJava 7 和 -XX:TraceDeoptimization
【发布时间】:2016-06-18 21:44:15
【问题描述】:

我正在尝试调试 Java 去优化,但我无法让 -XX:+TraceDeoptimization 工作。你知道它是否在 OpenJDK 7 中被禁用,或者在我的版本 (7u9-2.3.4-0ubuntu1.12.04.1) 中没有启用,或者我需要调用一些魔法 -XX:+unlockSomething 吗?

无论我尝试什么,我总是收到错误消息

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

当我添加这个参数时,没有任何进一步的细节。即使是普通的java -XX:+TraceDeoptimization 也会打印此消息。它也没有说它不识别该选项。但是,正如PrintCompilation 所揭示的那样,我看到了一条“made not entrant”消息,这显然表明了去优化,我想调试为什么会发生这种情况,因为我看到了一个奇怪的性能下降,据说是改进的代码。

解决方案:

默认构建确实不包含此功能。您需要一个调试版本。你可以find some with Google on jdk7.java.net

【问题讨论】:

    标签: java optimization java-7 jvm-hotspot


    【解决方案1】:

    所有标志选项都需要+- 来启用或禁用它们。在您的情况下,选项将是 -XX:+TraceDeoptimization 要关闭它(这是默认设置),您可以写 -XX:-TraceDeoptimization

    【讨论】:

    • 这实际上是我尝试过的。对不起上面的复制和粘贴。它在这里不起作用。
    • 附带说明,-XX:-TraceDeoptimization 会导致同样的错误。
    • 它可能在该版本中被禁用。我会尝试 Oracle Hotspot Java 7。
    • Oracle Java 7 说:Unrecognized VM option 'TraceDeoptimization'。这至少是一条错误消息,尽管它不能帮助我调试这种性能回归......知道哪个版本的 Java 真正支持这种调试吗?
    • 通过 Google,我在 java.net 上找到了一个 JDK7 调试版本,而这个确实包含该选项。谢谢。
    【解决方案2】:

    默认构建确实不包含此功能

    您需要一个调试版本。你可以find some with Google on jdk7.java.net

    【讨论】:

      【解决方案3】:

      此选项仅在 VM 的调试版本中可用。 (至少这是我的 idk 1.8u92 告诉我的。

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 2012-06-06
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 2014-12-07
        • 1970-01-01
        • 2015-04-09
        • 2012-11-30
        相关资源
        最近更新 更多