2015-01-16 139 views
1

最近,我正在研究Java Hotspot垃圾回收器。在這個主題上搜索,我發現大多數來源使用兩個術語「並行清除收集器」和「並行拷貝收集器」(如oraclecollectors)。 我很困惑兩者之間有什麼區別。據我所知,兩者都是一樣的。我知道關於複製收集將活動對象從「從」移動到「到」空間的位置。如果兩個收藏家之間存在差異,請向我提供詳細信息。如果不是,那麼爲什麼它使用術語「清除」而不是「複製」?Parallel Copy垃圾回收器和Parallel Scavenge垃圾回收器的區別

回答

1

它們是或多或少相同概念的不同實現。

由於您所鏈接的頁面已經說明了它們本身,它們旨在與不同的老式收藏家合作,這些收藏家對跨代標記有不同的需求。

一些熱點當前可能GC的組合在jdk8已經been deprecatedwill be removed在jdk9

報價從舊的熱點問答:

此外並行年輕一代收集器(-XX: + UseParNewGC) 與併發低暫停收集器集成,而並行垃圾收集器(-XX:+ UseParallelGC)不是。即使沒有使用並行低暫停收集器,也會產生一些與此集成相關的成本。相反,並行 垃圾收集器(-XX:+ UseParallelGC)可以與自適應 調整大小(-XX:+ UseAdaptiveSizePolicy)一起使用,而並行的年輕 代收集器(-XX:+ UseParNewGC)不能。

你可以找到this blog post

一些額外的細節。如果這仍然沒有足夠的信息給你,我建議擊中熱點-GC-dev的郵件檔案,其中可能有一些實施細則。

+0

感謝您的回覆。我有[頁](http://www.fasterj.com/articles/oraclecollectors1.shtml)的懷疑,我鏈接這是一些差異,但我找不到任何來源,談論之間的差異。你能否給我提供明智的實施細節是兩者之間的差異? – Deepak