繁体   English   中英

Java中的命令行工具连续运行多次,JRE不断打开/关闭,速度很慢

[英]Command line tool in Java gets run many times in a row, JRE keeps opening/closing, slow

我用Java编写了一个命令行工具,该工具从BAT脚本中连续运行了很多次。 现在,它是一个可运行的JAR(事后看来,这里可能不是正确的选择...)。 每次运行程序时,JRE似乎都会被加载和卸载,这似乎效率很低。 总体而言,它似乎比预期的要慢得多。

是否有任何Java专家了解解决这种情况的更合适的方法?

您可以尝试多种方法。 一种简单的方法是使用-Xquickstart启动JVM。

编辑 :看来此选项仅适用于IBM JDK(顺便说一下,它也支持AOT编译/共享类高速缓存)。

另一个选择是,使其成为一个较长的运行过程,该过程可以交互或批量接受多个作业。

有人创建了一个为此目的创建一个名为nailgun ,但不确定它处于什么状态。搜索时,Google给了我这些结果: http: //sourceforge.net/projects/nailgun/http:// martiansoftware。 com / nailgun /

还有一个GNU的gcj可以将Java编译为本地代码http://gcc.gnu.org/java/

由于没有简单的解决方法,因此您可能还会考虑更激进的方法:

  1. 实际上是将蝙蝠中的内容移植到Java本身中(如果它在具有某种过滤器的文件上循环,则很容易)。

  2. 如果最大的可移植性不是问题,则将jar编译为exe(例如,使用GCJ)。

这实际上是Java的最大问题之一,并且没有任何简单的解决方案。 基本上,如果您希望一个轻量级的程序可以快速连续运行很多次,那么您就不应该在Java中执行它。

我没有将Java编译为本机代码的经验,但是我知道几乎没有人这样做; 可能有充分的理由。

如果您张贴BAT文件,或者至少描述它的作用,也许有人可以提供更好的建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM