簡體   English   中英

如果有一個列表一直有300,000個對象,gc會有不好的表現嗎?

[英]If there is a list holding 300,000 objects all the time, will gc have a bad performance?

有一個列表一直保存300,000個對象,gc不會清理它們。

如果jvm配置“Xmx”有足夠大的值,那么這個大列表會讓gc表現不佳嗎?

我問這個是因為我想在我的應用程序中使用大列表和數據緩存。 如果一個大的列表不影響GC,那么這是最好的選擇,因為jvm中的列表比其他列表具有更好的性能,例如memcached,memory db,

一般來說,可能不是。 GC將看到這些對象是長壽的,並將它們移動到堆的區域,該區域旨在容納長壽命對象。

首先,為什么要使用列表作為緩存? 我想你需要大量訪問這個緩存? 如果是這種情況,也許您需要考慮Map實現。

關於GC性能,如果您的緩存對象將長時間保持引用,它們將自動移動到舊代(堆中的一個位置,包含長壽命對象),並且在這一代中,GC將不會經常打電話,所以在性能方面更好。

如果您想了解有關使用JDK6的GC的更多信息,請訪問以下鏈接: http//www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

暫無
暫無

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

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