javascript - 我可以通过在对象中定位属性来提高查找速度吗?

标签 javascript performance lookup

我已经看到很多关于访问对象属性的最快方法的问题(比如使用 . vs []),但似乎无法找到是否更快地检索对象中声明的比其他对象属性更高的对象属性字面语法。

我正在处理一个最多可包含 40,000 个属性的对象,每个属性都是一个长度为 2 的 Array。我将其用作按值查找。

我知道可能有 5% 的属性是我最需要检索的属性。为了提高性能(减少查找时间),是否值得执行以下任一操作?

  1. 在对象文字语法的顶部设置最常用的属性?
  2. 如果 #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/

相关文章:

javascript - 无法联系到 div 内的第 n 个子 img

javascript - 仅当图像具有 .landscape 类时,如何将类添加到容器 div?

javascript - 需要D3动画画线的说明

performance - 数组管理的时间复杂度(算法)

java - Hibernate在表中查找唯一字符串的快速方法

javascript - 如何在for循环中执行多个let

javascript - JavaScript 中的 DOM 性能

perl - 如何在实际负载下重播从日志到配置文件/基准Web应用程序到Web服务器的流量?

c - 如何生成 16 位查找表来计算设置位

python - 如何在 NumPy 中构建三线性插值的查找表?