我浏览到一个有javascript内存泄漏的网页。如果我多次刷新页面,最终会占用大量内存,页面上的javascript会变慢。在这个特定的页面上,我注意到当IE达到100MB RAM时非常显着的减速,即使我有多个GB空闲。
我的问题是为什么泄露的对象会导致javascript运行缓慢?有没有人能够深入了解IE中的JS解释器是如何设计的,这样会发生这种情况?
答案 0 :(得分:7)
即使没有交换,这也是由IE中垃圾收集器为Javascript的“愚蠢”实现引起的。如果有更多对象,它会使用一些更经常调用GC的启发式方法。
除了避免像地狱一样的内存泄漏之外,你无法避免这种情况,也避免创建太多的Javascript对象。
此致 马库斯
答案 1 :(得分:0)
我认为内存泄漏可能会导致一些内存碎片,这可能会降低应用程序的速度。我不确定这是如何工作的,但js代码的某些部分是否仍然可以在后台运行 - 作为孤立的进程?这可以解释减速 - 因为页面变得更加繁忙和繁忙,而你实际上并没有看到旧副本正在运行。
我可以把它拉出我的屁股。