【问题标题】:Is there a way to save the JAVA JIT information for the next run so that i don't have to warm up the code every day?有没有办法为下次运行保存 JAVA JIT 信息,这样我就不必每天预热代码了?
【发布时间】:2011-01-11 19:51:12
【问题描述】:

我有一个每天运行的 JAVA 进程,在被 JIT 完全优化之前需要大约 1,000 或 2,000 次点击。我想做的是保存 JIT 信息,以便第二天它可以以优化状态启动。看起来这应该是可能的,但我还没有找到任何方法。

【问题讨论】:

标签: java optimization jit


【解决方案1】:

您可以使用 JET 或 GCJ 之类的提前编译器,但我认为没有任何标准方法可以保存 JIT 表单。请记住,这会将您的程序与您正在运行的架构联系起来,但听起来您已经意识到并接受了这一点。

【讨论】:

  • 来自javalobby.org/forums/thread.jspa?threadID=15812 的更多信息:显然,目前的研究表明,在大多数情况下,加载缓存的 JIT 比重新编译要慢,但您可能想尝试一下 JRockit。
  • 该线程已有 6 年历史 - 我不确定它是否符合“当前”研究的条件”:)
  • 你提出了一个很好的观点,我应该注意到(或检查)。我仍然只是从布什 - 克里的比赛中挣扎。
  • 另一方面,研究可能从那时起根本没有改变!处理器仍然比磁盘快得多(如果有的话,它们甚至比以前的磁盘还要快,除非你有幸在服务器中运行固态磁盘。)
【解决方案2】:

一种选择是控制方法所需的调用次数,以使该方法被认为符合 JIT 编译条件。

-XX:CompileThreshold(默认 10000)。

您可以调整各种值来调整您的应用程序。

请注意,不建议将此设置为零。

【讨论】:

    【解决方案3】:

    你能保持你的应用程序运行吗?如果您只是让您的应用程序休眠到第二天而不是关闭,会发生什么?然后,您将节省启动 JVM 的时间以及可能跳过 jitting 阶段。

    【讨论】:

    • 这很有吸引力,但我无法控制企业决策。
    • 哇!我感到你的沮丧。
    猜你喜欢
    • 2019-09-10
    • 2018-11-28
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2021-05-23
    • 2023-03-16
    相关资源
    最近更新 更多