2009-01-22 62 views
3

我浏览到存在javascript内存泄漏的网页。如果我多次刷新页面,它最终会占用大量的内存,并且页面上的JavaScript会减慢速度。在这个特定的页面上,当IE获得高达100MB的RAM时,我注意到一个非常显着的减速,尽管我有多GB的空闲空间。为什么页面会随着Internet Explorer中内存使用量的增加而变慢

我的问题是为什么泄漏的对象会导致JavaScript运行缓慢?有没有人有任何洞察到如何在IE设计的JS解释器,这样发生?

回答

7

即使没有交换,这是由于在IE中使用Javascript的垃圾收集器的“愚蠢”实现引起的。如果有更多的对象,它会使用一些更经常调用GC的启发式方法。

有没有办法可以避免这种情况,除了避免像地狱一样的内存泄漏,也避免了创建太多的Javascript对象。

问候, 马库斯

+0

伊恩嗨,是否有一个政策,不能添加签名,或者你为什么要删除它? – kohlerm 2010-10-08 11:14:32

0

我会想象内存泄漏可能导致一些内存碎片,这可能会降低应用程序的速度。我不确定这是如何工作的,但是有可能部分js代码仍然在后台运行 - 作为孤立的进程?这可以解释放缓 - 当页面变得越来越忙,而你实际上并没有看到旧版本正在运行。

虽然我可以拉我的屁股。

相关问题