Javascript ExtJS堆快照。。我什么时候开始担心?

Javascript ExtJS堆快照。。我什么时候开始担心?,javascript,memory,extjs,memory-leaks,Javascript,Memory,Extjs,Memory Leaks,我想用ChromeDevTools识别我的web应用程序(ExtJS4.1+PHP+OpenLayers)中的内存泄漏。在浏览我的应用程序前后,我拍了一堆快照。正如您在下面看到的,初始大小是19.5MB。然后在使用了一些功能后,它会增长到27.9 MB。我让应用程序保持打开状态,然后在几个小时后回来并拍摄了另一个堆快照,它是28MB。然后我刷新了页面,它又回到了19MB。这是否意味着这些功能正在消耗大量的机器内存,我应该感到担心 19 MB的基线显示,您使用的库在内存中保存了大量对象(如果我去S

我想用ChromeDevTools识别我的web应用程序(ExtJS4.1+PHP+OpenLayers)中的内存泄漏。在浏览我的应用程序前后,我拍了一堆快照。正如您在下面看到的,初始大小是19.5MB。然后在使用了一些功能后,它会增长到27.9 MB。我让应用程序保持打开状态,然后在几个小时后回来并拍摄了另一个堆快照,它是28MB。然后我刷新了页面,它又回到了19MB。这是否意味着这些功能正在消耗大量的机器内存,我应该感到担心


19 MB的基线显示,您使用的库在内存中保存了大量对象(如果我去Sencha文档浏览几个地方,我看到他们的页面也消耗了约19 MB的内存,因此您似乎与他们不相上下)

你的应用程序似乎也会将一些大对象加载到内存中(使用应用程序时额外获得的10 MB内存,假设此处没有刷新),但由于你刷新了页面,并且内存占用降至~19 MB的基线,因此Chrome中似乎没有任何内存泄漏。但是,在站点内导航时,可能不会释放未使用的对象。处理完对象后,可以通过将对象设置为null()来释放内存

Chrome中没有内存泄漏并不意味着IE或其他浏览器中没有内存泄漏

在页面上坐上几个小时所消耗的额外0.1 MB内存可能是一个值得研究的问题,特别是当您的最终用户将长时间不使用页面和/或在低功耗机器或移动设备上运行时。然而,从长远来看,我的机器有8GB的内存,因此我必须将此页面保持相当长的时间,以产生任何不利影响

这是mdn中内存生命周期管理的详细描述,您可能会发现这很有用:


(我不会为大多数用户担心30 mb的堆;)

谢谢您的详细回答!非常感谢。