我一直在使用KineticJS构建一个iOS应用程序(UIWebView)。我创建了一个简单的示例应用程序,只是为了了解内存使用情况。我创建了一个单独的阶段,添加了100层和每层一行。为阶段和层分配的内存量约为每层6Mb或600Mb。然后,我添加了代码来删除setInterval函数中的每一层,然后调用stage.reset()以确保这一点。在性能分析中,内存利用率并未降低。
我检查了我的代码,以确保我没有保留对层的引用。在一个测试中,我还取消了对阶段的引用,但是内存分配值没有改变。这可能是一个bug,或者有其他使用KineticJS回收内存的方法吗?
发布于 2013-01-03 00:21:13
对于许多浏览器来说,这是一个“垃圾收集”问题。基本上,仅仅取消引用并不能释放内存。您必须依靠浏览器来识别何时释放一些内存。我在一些Android浏览器上也遇到了同样的问题。基本上,我只是安装了最新的Firefox浏览器,它的性能要好得多。抱歉,我帮不上忙。
https://stackoverflow.com/questions/13094100
复制相似问题