4

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

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

20mb 的增益。

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

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

CollectGarbage()

所以,如果我调用这个方法(不最小化屏幕),我只会回收一个或 2 个兆。

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

setTimeout(CollectGarbage, 1000)

我回收了大约 3 兆

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

任何人都知道如何强制 IE 以与手动最小化相同的程度清理其内存?

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

干杯:)

4

1 回答 1

1

使用delete关键字取消定义变量/属性,节省内存。更多在这里

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

使用闭包和 lambda 函数时要小心,因为它们传统上是内存占用和泄漏源。请参阅了解和解决 Internet Explorer 泄漏模式

于 2009-08-26T14:45:12.083 回答