![](/img/trans.png)
[英]JMH iterations go from >300,000 ops/sec to < 1 op/sec
[英]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.