我有关于垃圾收集的三个问题
我正在尝试研究我的应用程序中的垃圾收集,我可以注意到发生了完整的 GC。通过研究 GC 日志,我可以发现 old gen 甚至没有使用分配给它的一半内存。那为什么会发生full GC。JVM 是否还有其他一些算法可以释放内存,即使老一代没有被完全利用?
什么可以称为良好的GC趋势。我的意思是,如果每 10-15 分钟发生一次完整的 GC,我可以调用应用程序使其处于良好状态。我想知道一个应用程序的理想 GC 应该是怎样的。我知道这在很大程度上取决于应用程序,但应该有一些可以称为理想的东西。
- 我没有设置 NewSize 或 Newratio 属性。机器中默认的 NewRatio 似乎是 2。但我可以看到我的年轻一代只使用了 1/4 的堆大小,其余的被终身代使用。这怎么可能?我所定义的只是 Xmx 和 permsize。