簡體   English   中英

建議設置最大堆大小與否?

[英]Recommended Setting max Heap Size or Not?

許多建議都很老。 關於Java中的Heap和GC進行了一些更改。

我以前發現建議,將最大堆大小設置得太大可能會影響性能,從而使性能更糟。 因此也可以設置太低的值。

不設置最大堆大小將使用系統默認值,大約是其總內存的1/4。 對於我的計算機,它將為我的總內存分配8GB的JVM。

我正在使用Java 7引入的G1GC,並在運行時應用-XX:+ UseG1GC。

很難找到一種適合所有“最大堆大小”的大小。 我正在處理的應用程序可以從小到大縮放,具體取決於它的組成(它是動態的,並且在運行時確定)。 我已經看到一些應用程序實例不需要超過1GB的Max Heap,但是其他實例則受益於更大的大小。 將Java Web Start中的最大堆設置為4GB或什至2GB會導致運行32位(Java和/或OS,並且確實存在)的客戶端出現問題。

實際上,使用Java 7或8可以再設置最大堆大小嗎? JVM將使用可用的資源,GC將在已使用的堆和已提交的頭之間工作。 還是GC在所有已用堆和最大堆之間工作?

實際上,使用Java 7或8可以再設置最大堆大小嗎?

例如,如果JVM與也需要ram的其他應用程序共享OS。

JVM將使用可用的資源,GC將在已使用的堆和已提交的頭之間工作。 還是GC在所有已用堆和最大堆之間工作?

根據配置,GC可能會或可能不會停留在實際使用的堆范圍內。 在某些情況下,它們可能會大幅提高堆大小,以達到吞吐量或暫停時間目標。 因此,限制堆可提供更多可預測的堆大小,這可能會犧牲吞吐量,延遲或(如果大小不正確)OOM。

暫無
暫無

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

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