alt*_*alt 7 javascript performance
假设我有一个变量嵌套在一个巨大的对象中,我经常重复使用它:
i = 10000000;
while (i) {
i--;
document.write( bigobject.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p );
}
Run Code Online (Sandbox Code Playgroud)
将它缓存在循环外的新变量中会更快吗?
v = bigobject.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p
Run Code Online (Sandbox Code Playgroud)
并在我的循环中使用该缓存变量?
document.write ( v );
Run Code Online (Sandbox Code Playgroud)
对于不太直观的方面:JavaScript变量是自动缓存还是浏览器每次请求时都必须搜索更大的变量?
与所有重要性能问题一样,最好在jsperf.com这样的工具中测试您的具体情况,这样您就可以测量您关心的确切情况,并且您还应该在多个浏览器中运行测试以确保您的'重新测量是语言实现的一般特征,而不仅仅是一个浏览器的特性.
在回答您的问题时,如果您要多次访问它,通常会更快地缓存深层对象引用.
In the specific example, I coded here: http://jsperf.com/cache-deep-reference, the cached reference was more than 2x faster in chrome and more than 4x faster in IE10.
| 归档时间: |
|
| 查看次数: |
928 次 |
| 最近记录: |