許多建議都很陳舊。在Java中有關於Heap和GC的一些變化。建議設置最大堆大小還是不是?
我以前發現建議設置過高的最大堆大小可能會影響性能,使其變得更糟。所以也可以設置一個太低的值。
未設置最大堆大小將使用系統默認值,該值約爲其總內存的1/4。對於我的電腦,它會將8GB分配給我的總內存的JVM。
我正在使用Java 7引入的G1GC,並在運行時應用-XX:+ UseG1GC。
很難找到適用於Max Heap Size的所有尺碼。我正在處理的應用程序可以從小到大,取決於它的組成(這是非常動態的,並在運行時確定)。我已經看到應用程序的一些實例不需要超過1GB的Max Heap,但是其他人可以從更大的尺寸中獲益。將Java Web Start中的Max Heap設置爲4GB甚至2GB會導致運行32位(Java和/或OS,以及那些人確實存在)的客戶端出現問題。
實際上有沒有使用Java 7或8設置Max Heap Size的任何一點? JVM將使用可用的內容,GC將在已使用的堆和已提交的頭之間工作。或者GC是否在所有使用過的和最大的堆之間工作?
你可以在這裏看到一些建議。點擊[http://stackoverflow.com/questions/1565388/increase-heap-size-in-java](http://stackoverflow.com/questions/1565388/increase-heap-size-in-java)! – MAKAM
並非如此。不是我正在尋找的那個鏈接的答案。我知道如何設置最大堆,我知道32位和64位系統的理論極限。儘管我已經體驗過一些32位客戶,即使4g是理論上的限制,2048m也不會工作。我正在尋找推薦設置的答案,以及/或者如果設置最大堆數是任何一點。後果來自錯誤的最大堆。 – DJViking