为什么我的.jar文件比eclipse中的程序运行得慢?

sca*_*ity 8 java eclipse performance jar executable-jar

我有一个java程序,它从数据库中读取大量输入数据,对其进行操作,然后将数据写回另一个数据库(使用ODBC驱动程序,excel和访问数据库,在新的Windows 7机器上).该程序从eclipse运行大约需要17分钟,但是当我创建一个可执行的.jar文件时,它需要额外的10分钟才能运行(总共27分钟).

到目前为止,我发现慢速jar文件(通过搜索SO和谷歌)的两个原因是它们被压缩,并且写入命令提示符(或错误日志)比在eclipse中的控制台需要更长的时间.我尝试创建一个未压缩的jar文件,它只加速了大约10秒钟(这可能是完全随机的,因为运行时间大约相差30秒).我System.out.println()在程序中只有大约10个命令,因此不应该减慢它的速度.

关于是什么导致它运行得如此之慢的任何想法,如果有任何方法我可以再次加速?如果有任何其他可能相关的细节我应该包括在内,请告诉我.谢谢!

Ale*_*apu 8

以我为例,我的应用程序在Eclipse上运行需要3秒钟,而从jar运行它需要2分钟。
我的错误是"Package required libraries into jar"在将项目导出到可运行的jar 时进行选择。

我尝试了各种方法来减少时间,但无济于事。

如果项目中还有其他Maven依赖项或jar文件,则应"**Extract required libraries into generated jar**"在将项目导出到jar中时使用。

这在几秒钟内解决了我的问题,现在我的eclipse和jar文件都花了2秒钟的时间来运行应用程序。

希望这对新的奋斗者有所帮助。

问候。

  • 同样在这里,在 Eclipse 中运行很好(几乎是即时的),在 jar 中该过程落后了 4 分钟。你的建议解决了我的问题 (2认同)

npe*_*npe 4

使用JAMon。它是一个监控库,可以帮助您测量代码的执行时间。

将一些监视代码添加到方法后,在 Eclipse 中以 JAR 文件的形式运行它,并比较结果。这应该可以让您缩小搜索范围。

另外:检查您是否正在使用 Eclipse 使用的相同 java 版本运行 JAR 文件(例如 Java 1.4.x 可能比 1.6.x 慢得多)。