【问题标题】:Is there a way to turn off JIT compiler and is there a performance impact by doing so?有没有办法关闭 JIT 编译器,这样做会影响性能吗?
【发布时间】:2016-03-22 19:43:24
【问题描述】:

JIT 对 Java 程序意味着什么?它是否使执行速度更快?或者是否有不是 JIT 的字节码?

【问题讨论】:

    标签: jvm interpreter bytecode compiler-optimization jit


    【解决方案1】:

    有两种方法可以禁用 JIT

    -Djava.compiler=NONE 
    

    否则这几乎不会编译任何东西

    -XX:CompileThreshold=2000000000
    

    或在 IBM JVM 上

    -nojit
    

    禁用 JIT 会大大降低您的代码速度,例如50 倍,但并非总是如此。如果您将大部分时间花在 IO 或 GUI 更新上,您可能会发现这没什么区别。

    【讨论】:

    • 我正在学习 java 并且对大多数东西有很多疑问.....谢谢您的回答。 :) 进一步我想知道当我们禁用 JIT 时会使用什么编译器?
    • @CoDerus 禁用 JIT 意味着没有编译器。相反,代码仅在解释器模式下运行。
    【解决方案2】:

    来自doc

    -Xint
    

    以仅解释模式运行应用程序。禁止编译为本机代码,所有字节码都由解释器执行。

    java.compiler 系统属性在 Java 9 之前为 Compiler 类所知。在 Java 9 中,它被标记为 @Deprecated

    【讨论】:

      【解决方案3】:

      对于 IBM,正确的选项是 -Xnojit 或 -Xint

      【讨论】:

      • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
      • 当我写下他的答案时,我不被允许发表评论。否则,我会的。
      【解决方案4】:

      在 HotSpot VM 中,可以使用选项 -XX:-UseCompiler 禁用 JIT 编译,该选项跳过编译器线程初始化。

      trueby default:

      product(bool, UseCompiler, true,                                          
              "Use Just-In-Time compilation")   
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 2011-04-16
        • 1970-01-01
        相关资源
        最近更新 更多