当我从eclipse运行时,我的程序运行得非常好但是我把它打包到一个可执行的jar并从命令行运行它,它运行得慢得多(几乎慢了五倍)。我甚至在执行jar时设置-vmargs java -Xms40m -Xmx512m -jar jarFile.jar 我的机器上没有任何旧版本的java。我无法理解我在这里失踪的东西。在使用相同版本的java和相同的vm参数时,eclipse如何更快地运行相同的程序。任何帮助将不胜感激。
谢谢, KARTHIK
答案 0 :(得分:7)
我们遇到了类似的问题,但问题是当从eclipse将Java代码导出为可运行的jar文件时,我们选择了“将所需的包打包到生成的jar中”选项。这将所有引用的库作为jar文件放在runnable jar中,这可能在每次运行时都被解压缩。而不是在创建可运行的jar文件时,我们使用“将所需的库提取到生成的jar”选项,并且执行jar的速度 - 与在eclipse中运行代码时几乎相同。
答案 1 :(得分:1)
您很可能会将很多内容打印到System.out / System.err(直接或通过日志记录)。 Windows终端模拟器需要呈现输出,并且比Eclipse慢。
尝试将所有输出重定向到文件或NUL并再次测量。
答案 2 :(得分:1)
而不是选中“将所需的库打包到生成的jar中”, 创建可运行的jar文件时,请使用“将所需的库提取到生成的jar中”选项。这样可以节省很多时间。