banq大哥,请教java垃圾收集器
你好,banq大哥,你说java的垃圾回收机制是在内存剩余大约5%时才启动,我想问一下,这里的内存是指机器的内存,还是指-Xms和-Xmx或-XX:PermSize限定的空间?
你好,banq大哥,你说java的垃圾回收机制是在内存剩余大约5%时才启动,我想问一下,这里的内存是指机器的内存,还是指-Xms和-Xmx或-XX:PermSize限定的空间?
你好,让我试着简要解释一下java gc吧,可能对你有所帮助。
Java内存从简单上讲,应该分为三个区域,Level 1缓存,Level 2缓存以及perm区域。Level 1缓存满了,则触发partial gc;Level 2缓存满了,则触发full gc;perm区域则是class定义的常驻区域。
-Xms和-Xmx限定的应该是Level 1 cache + Level 2 cache + perm size的大小。
Sun的java虚拟机有专门的参数,你可以看到虚拟机的垃圾收集信息,你可以看一下。
至于是5%,还是10%,个人感觉不太重要。理解了两层的垃圾收集机制才是问题的关键,性能调优时也基本上足够了。
GC在网上有很多英文文章进行讨论,你可以看看。