如何清理rajawali LoaderObj.parse()创建的FinalizerReference实例?

时间:2017-01-12 11:23:01

标签: android animation memory-leaks .obj rajawali

我是rajawali的新手。 我有来自Blender的570帧动画,并导出到obj和mtl文件(每个570)。 我试着写一个android rajawali应用程序来显示LoaderOBj对象的动画。 我写了一个循环来逐个显示和隐藏每个obj。 我发现了内存泄漏问题。

在使用堆转储和分配跟踪进行故障排除后,我发现LoaderObj的parse()方法会创建大量的FinalizerReference实例。 LoaderObj下没有reset()或等效方法。 如何解决这个内存泄漏问题,或者使用循环来显示570帧的obj / mtl文件是错误的?

1 个答案:

答案 0 :(得分:0)

您永远不会“清理” FinalizerReference类的实例,无论该实例是由rajawali(间接)创建的,还是以任何其他方式创建的。它们 可能在垃圾回收期间被系统删除,其中它们对于覆盖Object类的finalize()方法的类起着至关重要的作用。

由于错误的原因,FinalizerReference可能引起了您的注意。它通常显示在堆转储的顶部附近,这是由于Android Memory Profiler报告的“保留大小”虚假地大了一个值。我有了investigated,发现如此大的“保留大小”值是由于Profiler对相同数量的少量内存进行了大量计数。