【问题标题】:How to make JVM start faster? [duplicate]如何让JVM启动更快? [复制]
【发布时间】:2011-07-22 20:58:51
【问题描述】:

可能重复:
How to speed up Java VM (JVM) startup time?

我正在用 Java(或者可能是另一种基于 JVM 的语言)编写命令行实用程序。问题是JVM启动时间。例如,JVM 的启动速度比 Python 和 Ruby 慢。

如何让 JVM stat 更快?我可以以某种方式“提前”加载 JVM(在 Linux 和 Windows 中),以便每次在命令行中运行我的实用程序时都不应该加载它?

【问题讨论】:

  • 我也很想知道该怎么做!我会说精简你的依赖 jar 文件,但我希望有人能提供更多知识。
  • 在我的机器上,“HelloWorld”程序需要 40 毫秒来加载/运行/完成。您需要多快?
  • @Thorbjørn Ravn Andersen,之前运行过相同版本的Java之后。
  • 如果您有一个复杂的应用程序,您可以将其作为服务,但是使用该服务的命令行实用程序可能至少需要 60 毫秒。

标签: java performance jvm


【解决方案1】:

对于 Windows,默认安装 JRE 时提供 Java Quick Starter。

http://www.java.com/en/download/help/quickstarter.xml

【讨论】:

    【解决方案2】:

    Nailgun 可能是最好的解决方案 - 它保持运行中的 JVM 实例,然后您的命令可以调用(使用超轻量级 C 客户端)。

    作为替代或附加选项,如果您尚未升级到 Java 7,您可能想尝试升级 - 启动时间得到了很多改进。

    【讨论】:

    • 我们在工作中使用Jruby,jvm启动时间和spring对象的加载是滞后的部分。我们最近切换到客户端服务器 NailGun 设置,我们的速度提高了 2 倍以上。我们喜欢它!
    【解决方案3】:

    提前加载 JVM,您可以使用Drip。它使用正确的类路径和其他 JVM 选项保留一个新的 JVM,以便您可以在需要时快速连接和使用它,然后将其丢弃。 Drip 对 JVM 选项进行哈希处理,并将有关如何连接到 JVM 的信息存储在以哈希值作为名称的目录中。

    【讨论】:

    • 谢谢哥们......并判断策略)然后如果我走多条jvm路线,我也需要循环方式/其他方式来选择jvm。有类似的东西已经建立在/扩展“滴水”上。我将如何关闭 jvm?任何进一步的资源? wiki 很稀疏。
    • 我认为是从 sh 脚本中得到的。
    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 2012-03-02
    • 2016-03-19
    • 2016-11-09
    • 2012-06-17
    • 1970-01-01
    • 2021-01-12
    • 2013-03-14
    相关资源
    最近更新 更多