似乎很多人都意识到Javascript实例的垃圾收集。
我正在编写一个框架,为了代码质量的目的,可以真正受益于返回新实例的函数,然后这些函数将被垃圾回收。就我而言,单个用户操作可以创建大约5000个这样的实例。
对象池是可能的,但会使代码复杂化。
是否有一些基准测试可以证明垃圾收集的惩罚 - 无论是在内存还是性能方面?
答案 0 :(得分:0)
关于this SO question,我进行了一次小测试,其中13次创建了 10,000个实例,这些测试将被垃圾收集。
Test01
使用按钮触发了几次。控制台时间表显示了这一点:
// Bounds
function Bounds() {
this.x = Math.random();
this.y = Math.random();
this.h = Math.random();
this.w = Math.random();
}
// Rect
function Rect() {
}
Rect.prototype.getBounds = function() {
return new Bounds();
}
// Renderer
function Renderer() {
this.bounds = null;
}
Renderer.prototype.setBounds = function( aBounds ) {
this.bounds = aBounds;
}
// Test
function Test01() {
var iRenderer = new Renderer();
var iRect = new Rect();
for ( var i = 0; i < 100000; i++ ) {
iRenderer.setBounds( iRect.getBounds() );
}
}