可执行JAR的运行速度比Eclipse慢

ercv8c1e  于 2022-10-15  发布在  Eclipse
关注(0)|答案(4)|浏览(310)

当我从eclipse运行时,我的程序运行得非常好,但我将其打包到一个可执行的JAR中并从命令行运行,它的运行速度要慢得多(几乎慢了五倍)。我甚至在执行jar Java-Xms40M-Xmx512M-jar jarFile.jar时设置了-vmargs。我的机器上没有任何旧版本的Java。我不能理解我在这里错过了什么。在使用相同版本的Java和相同的vm参数的情况下,eclipse如何更快地运行相同的程序。任何帮助都将不胜感激。
谢谢你,卡蒂克

w3nuxt5m

w3nuxt5m1#

我们也遇到过类似的问题,但问题是,当从eclipse中将Java代码作为可运行的JAR文件导出时,我们选择了一个选项“将所需的库打包到生成的JAR中”。这是将所有引用的库作为JAR文件放在可运行的JAR中,而JAR可能在每次运行时都会被解包。相反,我们在创建可运行的JAR文件时使用了“将所需的库提取到生成的JAR中”选项,并且JAR的执行速度迅速提高--几乎与在eclipse中运行代码时相同。

xmd2e60i

xmd2e60i2#

您很可能会将大量内容打印到System.out/System.err(直接打印或通过日志记录)。Windows终端仿真器需要呈现您的输出,并且它的执行速度比Eclipse慢。
尝试将所有输出重定向到文件或NUL,然后再次测量。

vnzz0bqm

vnzz0bqm3#

在创建可运行的JAR文件时,不要选中“将所需的库打包到生成的JAR中”,而是使用“将所需的库解压缩到生成的JAR中”选项。这节省了很多时间。

carvr3hs

carvr3hs4#

我也面临着同样的问题。eclipse运行应用程序需要5秒,而jar需要3分钟。这是由于我导出可运行的jar文件的方式所致。
这主要是在eclipse中作为可运行的jar导出的两种方法。

1)。将所需的库打包到JAR中

  • 这会将库的实际jar文件添加到jar中。这是最干净的,因为它用库JAR分隔应用程序类文件。
  • 缺点是这会使Runnable JAR执行得非常慢。
    2)。将所需的库解压缩到生成的JAR中
  • 这种方法将只从您的应用程序使用的库中提取实际的类文件,并将其包含在可运行的jar文件中。因此,您的Jar文件将包括您的应用程序类文件以及您的应用程序使用的所有库的类文件。
  • 此方法使Runnable JAR像在eclipse IDE中运行一样运行。*
  • 使用这种方式,我能够毫无延迟地运行JAR应用程序,并且完成时就像在eclipse IDE中运行一样,只需5秒。

相关问题