我已经看到很多关于访问对象属性的最快方法的问题(比如使用 . vs []),但似乎无法找到是否更快地检索对象中声明的比其他对象属性更高的对象属性字面语法。
我正在处理一个最多可包含 40,000 个属性的对象,每个属性都是一个长度为 2 的 Array
。我将其用作按值查找。
我知道可能有 5% 的属性是我最需要检索的属性。为了提高性能(减少查找时间),是否值得执行以下任一操作?
- 在对象文字语法的顶部设置最常用的属性?
- 如果 #1 没有效果,我是否应该创建两个单独的对象,一个具有最常见的 5% 的属性,首先搜索那个,如果在那里找不到该属性,则使用所有不太常见的属性?
或者,有没有更好的办法?
最佳答案
我在这里做了一个js perf:http://jsperf.com/object-lookup-perf
我基本上将 40000 个带有随机键的 Prop 注入(inject)到一个对象中,保存了“第一个”和“最后一个”键并在不同的测试中查找它们。我对结果感到惊讶,因为访问第一个条目比访问最后一个条目慢 35%。
此外,拥有 5 个或 40000 个条目的对象没有任何明显的区别。
测试用例很可能会得到改进,我可能遗漏了一些东西,但对您来说是一个开始。
注意:我只测试了chrome
关于javascript - 我可以通过在对象中定位属性来提高查找速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21538385/