簡體   English   中英

如何計算保留堆大小和淺堆大小?

[英]How to calculate retained heap size and shallow heap size?

我是Java新手,我只是使用eclispe的MAT進行了堆轉儲分析。 因此,我只想介紹以下幾點:a)了解什么是淺層和保留堆大小以及如何計算? 如果您提供示例,那就太好了。 b)對於性能問題,大多數人建議我保持最小和最大堆大小相同,這樣可以嗎?還是要視應用程序而定?

淺堆是一個object消耗的內存。 一個對象需要每個引用32或64位(取決於OS架構),每個Integer 4個字節,每個Long 8個字節等。根據堆轉儲格式,可以調整大小

X的保留堆是X保留集中所有對象的淺層大小的總和,即X保持活動的內存。

請參考鏈接。

JVM大小調整和調整並不是一門精確的科學,因此,做出一攬子決定將最小和最大大小設置為相同不一定是最佳選擇。

我發現是對您需要做出的決策的很好的解釋。 在回答您的問題時,它說:

將-Xms和-Xmx設置為相同的值可以通過從虛擬機中刪除最重要的大小確定決策來提高可預測性。 但是,如果選擇不當,虛擬機將無法補償。

如果將min和max設置為相同,但Eden空間的大小不合適,則可能仍然會導致較差的垃圾回收性能。

決定大小的唯一方法是在各種工作負載下運行應用程序,並查看GC的性能。

暫無
暫無

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

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