簡體   English   中英

為什么從命令行運行可執行jar比使用Eclipse運行的同一個項目使用更多的ram?

[英]Why an executable jar when run from a command line uses much more ram, than the same project run from Eclipse?

為什么從命令行運行時可執行jar使用更多的RAM - 在我的情況下大約多7倍 - 比從Eclipse運行的同一個項目?

在開發項目時,我從Eclipse運行應用程序(運行 - >運行),它使用了大約60mb(我看了剛剛創建的javaw.exe進程)的ram,而如果我創建了一個可執行的JAR並從命令行運行它(Windows公羊的使用量約為450mb。 此外,從命令行運行時,ram使用量變化的幅度大於Eclipse的Run-> Run。

這可能與Eclipse啟動應用程序的JVM設置有關。 在啟動Jar時,Java將最好地猜測在內存方面使用的設置。 您可以在控制台上更改java命令使用的內存大小:

java -Xms64m -Xmx256m -cp your.jar

-Xms??m以mb為單位設置最小堆大小。
-Xmx??m以mb為單位設置最大堆大小。

Java可能會自動選擇更大的堆大小,因為它不受eclipse的支配。

在eclipse中,它必須與其他服務/應用程序共享內存。 但是在命令行上它沒有任何限制。 在命令行上,您還可以通過啟動應用程序來限制ram。 你可以通過這樣做來限制它

java -Xmx256M -Xms256M -cp /*.jar

暫無
暫無

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

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