相关疑难解决方法(0)

在Javascript中减少垃圾收集器活动的最佳实践

我有一个相当复杂的Javascript应用程序,它有一个主循环,每秒调用60次.似乎有很多垃圾收集正在进行(基于Chrome开发工具中内存时间线的'锯齿'输出) - 这通常会影响应用程序的性能.

因此,我正在尝试研究减少垃圾收集器必须完成的工作量的最佳实践.(我在网上找到的大部分信息都是为​​了避免内存泄漏,这是一个稍微不同的问题 - 我的内存被释放,只是垃圾收集过多了.)我假设这主要归结为尽可能重用对象,但当然魔鬼在细节中.

该应用程序按照John Resig的简单JavaScript继承的方式构建在"类"中.

我认为一个问题是一些函数可以每秒调用数千次(因为它们在主循环的每次迭代中使用了数百次),也许这些函数中的本地工作变量(字符串,数组等)可能是问题.

我知道更大/更重的对象的对象池(我们在一定程度上使用它),但我正在寻找可以全面应用的技术,特别是涉及在紧密循环中被调用很多次的函数.

我可以使用哪些技术来减少垃圾收集器必须执行的工作量?

而且,也许还有 - 可以使用哪些技术来识别哪些对象被垃圾收集最多?(这是一个非常大的代码库,所以比较堆的快照并不是很有成效)

javascript garbage-collection

90
推荐指数
3
解决办法
3万
查看次数

标签 统计

garbage-collection ×1

javascript ×1