有趣的观察与IE内存管理和JavaScript

时间:2009-08-26 13:58:23

标签: javascript memory explorer

在Windows中,当应用程序最小化时,操作系统会通过将数据放在页面文件中来释放与应用程序关联的内存。其他垃圾收集也可以执行。

在Internet Explorer运行我的javascript应用程序的情况下,我发现如果内存使用量从60mb开始,那么最小化浏览器会将内存减少到17mb。最大化然后将其恢复到40mb

增加20mb。

我的应用程序大量使用javascript,我怀疑IE正在强制不再引用的对象的garabage集合。

通过javascript(仅限IE),您可以通过以下方式强制进行垃圾回收:

CollectGarbage()

因此,如果我调用此方法(不会最小化屏幕),我只会回收一个meg或2。

如果我通过事件队列调用它:

setTimeout(CollectGarbage, 1000)

我回收大约3兆

我的应用程序旨在全天运行,因此内存管理非常重要。

任何人都有任何想法如何强制IE清理内存的程度与手动minise相同?

以编程方式最小化浏览器的建议将被嘲笑!

干杯:)

1 个答案:

答案 0 :(得分:1)

使用delete关键字取消定义变量/属性,从而节省内存。 More here

但是如果您只需要丢失对对象属性的引用,只需将其设置为null并等待下一个集合。

小心使用闭包和lambda函数,因为它们传统上是记忆猪和泄漏源。请参阅Understanding and Solving Internet Explorer Leak Patterns