8 java memory garbage-collection
过去几个月我们一直在调整我们的生产应用程序,以便我们不会遇到完整的GC.我们现在只经历年轻的GC,年轻的GC的比率取决于对象分配的速度.
我们的应用程序需要尽可能接近"实时",所以现在我们正在努力减少年轻的GC的数量.正如旧的公理所说,我们分配的大部分数据最终都是垃圾,并在下一个年轻的GC中被丢弃.因此无需预先分配此类数据.然而,我们知道从年轻的GC到旧的GC有大量的对象(由类型定义).
在更理想的时间(即启动时)预先分配这些对象是否有意义,这样我们最终会在不太理想的时间内分配更少的东西?我已经阅读了文献,其中提到了最新的JVM不建议如何使用对象池,因为分配要便宜得多.预分配对象的缺点是什么,我知道它会进入旧的GC?