[译]减轻GC压力的最佳实践

2016-06-17  本文已影响203人  袁韩

Best practices for reducing Garbage Collector activity in Javascript

原则 尽量减少创建(creating)与销毁(destroying)的过程

常见的创建过程

优化建议

使用对象池或者重用组件

function loopfunc()
{
    //do something
}

while(true)
{
    $.each(listofthings, loopfunc);

    options.ChangingVariable = newvalue;
    someOtherFunction(options);
}

将快于

while(true)
{
    $.each(listofthings, function(){
        //do something on the list
    });

    someOtherFunction({
        var1: value1,
        var2: value2,
        ChangingVariable: newvalue
    });
}

lookupTable[foo+x]document.getElementById('foo-' + x)两者都包含了字符串的创建.在很多情况下,你都可以将keys绑定到生命周期长的引用上,而非每次使用时,都重新创建它。根据浏览器,你可以考虑使用Map

try { op(x) } catch (e) { ... }

转换为

if (!opCouldFailOn(x)) { op(x); } else { ... }
上一篇下一篇

猜你喜欢

热点阅读