簡體   English   中英

為什么我的.jar文件運行速度比eclipse中的程序慢?

[英]Why is my .jar file running slower than the program in eclipse?

我有一個 java 程序,它從數據庫讀取大量輸入數據,對其進行操作,然后將數據寫回另一個數據庫(使用 ODBC 驅動程序、excel 和訪問數據庫,在新的 windows 7 機器上)。 該程序從 eclipse 開始運行大約需要 17 分鍾,但是當我創建一個 executable.jar 文件時,它需要額外運行 10 分鍾(總共 27 分鍾)。

到目前為止,我發現 jar 文件(通過搜索 SO 和谷歌)速度慢的兩個原因是它們被壓縮並且寫入命令提示符(或錯誤日志)比 eclipse 中的控制台花費更長的時間。我嘗試創建一個未壓縮的 jar 文件,它只加速了大約 10 秒(這可能是完全隨機的,因為運行時間無論如何都會有大約 30 秒的變化)。 我在程序中只有大約 10 個System.out.println()命令,所以這不會減慢它的速度。

關於是什么導致它運行得這么慢的任何想法,如果有什么辦法可以再次加快它的速度? 讓我知道是否有任何其他可能相關的細節我應該包括在內。 謝謝!

就我而言,我的應用程序在 eclipse 上運行需要 3 秒,而從 jar 運行它需要 2 分鍾。
我的錯誤是在將我的項目導出到可運行的 jar 時選擇了"Package required libraries into jar"

我嘗試了各種方法來縮短時間,但沒有任何幫助,除了..

如果您的項目中有其他 maven 依賴項或 jar 文件,則在將您的項目導出"**Extract required libraries into generated jar**"時應使用"**Extract required libraries into generated jar**"

這在幾秒鍾內解決了我的問題,現在我的 eclipse 和 jar 文件都花費了相同的時間來運行應用程序,2 秒。

希望這對新的奮斗者有所幫助。

問候。

使用JAMon 它是一個監控庫,可以幫助您測量代碼的執行時間。

在向方法中添加一些監視代碼后,在 Eclipse 中將其作為 JAR 文件運行,然后比較結果。 這應該允許您縮小搜索范圍。

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

我有一個類似的問題。 shell 運行速度慢了幾個數量級,它與控制台輸出無關。 我嘗試設置 JVM 內存值,但沒有任何區別

解決方案是使用“Runnable JAR File Export”向導中的“Copy required libraries into a sub-folder next to the generated JAR”選項將帶有所有 JAR 的 ANT 文件打包到一個外部文件夾中。 然后使用 -cp [YOURSUBFOLDER] 命令行選項運行主 JAR。

您可以檢查 Java VM 參數(如已使用的 GC、最大內存等)。 對於數據密集型應用程序,GC 可能會大大減慢速度。

是的,我有同樣的問題。 我已經嘗試並得到了解決方案!

只需在制作 jar 文件時選擇“將所需的庫打包到 jar 中”即可 這個解決方案對我來說很好用,希望這也適合你。

我遇到了同樣的問題。 eclipse運行應用程序需要 5 秒,而jar需要 3 分鍾。 這是由於我導出可運行的jar文件的方式所致。

這主要是在eclipse中導出為 Runnable jar的兩種方式。

1). Package需要的庫改成jar

  • 這會將庫的實際jar文件添加到您的jar中。 這是最干凈的,因為它將應用程序 class 文件與庫 JARs 分開。
  • 缺點是這會使可運行的 jar 執行非常慢。

2). 將所需的庫提取到生成的 jar

  • 這種方式只會從您的應用程序使用的庫中提取實際的 class 文件,並將其包含在可運行的jar文件中。 因此,您的 Jar 文件將包含您的應用程序 class 文件以及您的應用程序使用的所有庫的 class 文件。

  • 此方法使可運行的 jar 的性能就像在您的eclipse IDE 中運行一樣。

  • 使用這種方式,我能夠毫無延遲地運行 jar 應用程序,並且就像我在eclipse IDE 中運行一樣,耗時 5 秒。

話雖如此,最好的方法是使用maven構建工具。 通過使用Maven可以很容易地維護和處理第三方庫。 你可以看看。

https://www.baeldung.com/executable-jar-with-maven

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM