一些application則通過如System.gc()的顯式調(diào)用來與garbage collection進(jìn)行交互,以避免full garbage collection的出現(xiàn)。這些調(diào)用是針對(duì)major collection的,并且抑制了在大型系統(tǒng)上的可測(cè)量性。因?yàn)?/font>explicit garbage collections(垃圾的顯式回收)而受到影響的性能可通過命令行-XX:+DisableExplicitGC來測(cè)量,命令行-XX:+DisableExplicitGC用于禁止這種explicit garbage collections(顯式的垃圾回收)。
使用explicit garbage collection的另一種最常見情況是發(fā)生在RMI的分布式垃圾回收過程(distributed garbage collection,DGC)中。application使用RMI來獲取其他虛擬機(jī)中的對(duì)象。這些分布式application中的垃圾在沒有occasional local collection(不經(jīng)常的本地收集)的情況下就不能被收集,所以RMI就采用了定期的整體收集(periodic full collection)的策略。這種收集的頻率可通過以下屬性來控制。例如通過命令行:
java -Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000 ...
內(nèi)存篇:解析JDK 7的Garbage-First收集器
JVM內(nèi)存管理:深入Java內(nèi)存區(qū)域與OOM
JVM內(nèi)存管理:深入垃圾收集器與內(nèi)存分配策略
一個(gè)面試官對(duì)面試問題的分析 http://icyfenix.javaeye.com/blog/715301
寫一些引用類型的測(cè)試
嘗試不同的gc算法
測(cè)試下數(shù)組拷貝的性能
聯(lián)系客服