2011-08-01 25 views

回答

7

在壓縮引用中有巨大的價值。首先,在x86上,64位模式解鎖8個新的寄存器,這是一個巨大的性能勝利。其次,使用4個字節而不是8個字節的標頭/對象指針可顯着提高緩存效率。我們在IBM Java中看到相對於「完整」64位JVM(您的里程會有所不同)的實際優勢約爲5-10%。這讓移動到「小64位」堆成一個簡單而無痛的事情,突破了32位JVM中的〜2GB內存限制。 (根據操作系統的不同,真正的32位限制可能在1700mb到〜3.7GB之間)。

1

如果您的主要目標是完全避免垃圾回收,或者至少GC運行頻率較低,這是值得的,因爲它可能導致內存佔用率大幅降低。

2

您可以從每個對象引用獲得4個字節。如果對象有更多的引用,它在java對象中很常見,你可以節省更多的內存。 小物體尺寸可能會導致2個結果,首先,GC暫停時間縮短。第二,緩存命中率增加。所以Java應用程序可以提高性能。對於基準測試,啓用CompressedOops可以將性能提高5%〜10%。