我有一个应用程序,内存配置文件看起来是这样的:值得减轻垃圾回收的影响吗?
Jaggy http://kupio.com/image-dump/spikeymem.png
内存使用量的缓慢向上爬行是由许许多多小,操作简单,临时对象的分配造成的。在内存不足的情况下(这是一款移动应用程序),与较少限制的内存量相比,GC开销显而易见。
由于我们知道,由于应用程序的性质,这些尖峰将持续到来,我正在考虑某种形式的众多临时对象(真棒名称)。这些对象将在应用程序的整个生命周期中生存并在可能的情况下被重新使用(对象的生命周期很短且可预测性很高)。
希望这可以通过减少收集的对象数量和提高性能来减轻GC的影响。
显然这也会有其自身的性能限制,因为“分配”会更加昂贵,并且在维护缓存本身时会有开销。
由于这将是一个相当大和侵入性的变化到大量的代码,我想知道是否有人尝试过类似的东西,如果这是一个好处,或者如果有任何其他已知的方式来减轻GC在这种情况。也欢迎有效管理可重用对象缓存的想法。
“众多潜在对象的大缓存”==池。 – 2009-08-05 10:45:27
pool ==“没有那么多的乐趣说”:P – izb 2009-08-05 10:48:06