我正在构建一个带有简单搜索面板的应用程序,该搜索面板具有很少的搜索属性和结果面板。在结果面板中,我使用Slickgrid以表格形式呈现数据。
经过几次搜索(AJAX调用服务器)后,页面被加载了很多,并且最终会在一段时间后崩溃。我已检查DOM计数和JavaScript堆使用情况以查找可能的内存泄漏。我找不到任何错误。但是,当我运行实验性本机内存分析器时,我看到“JavaScript外部资源”部分使用600+ MB内存。在运行垃圾收集器时,它会降低到几MB。我在这里有几个问题:
如何解决原始问题?
答案 0 :(得分:1)
JS Heap Profiler在javascript中创建对象的快照,但javascript代码可以在“Int8Array”,“Uint8Array”,“Uint8ClampedArray”,“Int16Array”,“Uint16Array”,“Int32Array”,“Int32Array”的帮助下使用本机内存。 Uint32Array“,”Float32Array“和”Float64Array“。 因此,当您拍摄快照时,它将只有指向本机内存块的小包装器。 遗憾的是,堆快照不提供有关用于这些类型对象的本机内存的数据。 本机堆快照能够计算该内存,现在我们知道该页面通过数组或外部字符串使用本机内存。
我想知道你是如何检查页面没有内存泄漏的?您是使用三种快照技术还是仅检查特定对象? Tool to track down JavaScript memory leak