Javascript对象中的跨浏览器密钥查找性能

Cross-browser key lookup performance in Javascript objects

本文关键字:密钥 查找 性能 浏览器 对象 Javascript      更新时间:2023-09-26

我正在用Javascript做一个数据密集型项目,其中有数千个以短字符串作为"ID"的对象需要由ID有效查找。我的(可能是天真的)方法是为每个对象创建一个属性由ID键控的对象。

不同的浏览器/JS引擎如何在这样的大型对象中实现密钥查找?我知道V8对具有少量属性的对象进行了高度优化,但如果有成千上万的属性不断添加和删除,会发生什么?在不同的浏览器中,对象是否由哈希表或尝试支持?不管怎样,我想使用较短的密钥都有好处,但有人知道这是否是一个很大的好处吗?是否有任何浏览器在关键字查找方面非常糟糕(即是否使用顺序搜索?),以至于滚动我自己的数据结构会更具性能?

多么偶然。几天前有一个关于这个的问题。OP生成了一些测试基准,并在几个小时前发布了这些基准。我建议你去看看:JavaScript对象作为哈希?复杂性是否大于O(1)?