0

所以我在 Visual Studio 中为我的 Windows 商店应用程序运行 javascript 内存分析器。我看到在我们导航到另一个页面后,属于一个页面的 div 元素之一显示在堆快照上。

我想这是内存泄漏?如果是,可能是什么原因造成的?

4

1 回答 1

0

不必要。浏览器(或您的操作系统?)不一定急于进行垃圾收集。尝试加载一个充满大量内存密集型资产(例如图像/视频/闪存)的页面。当内存越来越低时,垃圾收集应该变得更加积极。

如果您仍然看到该元素,那么这两个页面是否有一个通用的 javascript 文件?它是否引用了div?只要有对 div 的引用,它就不应该被垃圾收集,这就是泄漏的根源。由于 javascript 对象总是通过引用而不是实际对象传递,因此查找和更改/删除每个引用有时会很棘手。特别注意全局范围内的任何引用,因为这些引用在脚本的生命周期内存在(除非明确更改),因此通常不会被垃圾收集(取决于 javascript 环境的聪明程度)。

于 2013-05-16T23:25:26.047 回答