相关疑难解决方法(0)

JavaScript中的对象/数组的性能如何?(专门针对Google V8)

与JavaScript中的数组和对象(尤其是Google V8)相关的性能对于文档来说非常有趣.我在互联网上找不到关于这个主题的综合文章.

我知道一些对象使用类作为它的底层数据结构.如果有很多属性,它有时被视为哈希表?

我也理解,数组有时被视为C++数组(即快速随机索引,慢速删除和调整大小).而且,其他时候,它们更像对象(快速索引,快速插入/删除,更多内存).并且,有时它们可​​能存储为链接列表(即慢速随机索引,在开头/结尾快速删除/插入)

JavaScript中的数组/对象检索和操作的精确性能是什么?(专门针对Google V8)

更具体地说,它对性能的影响如下:

  • 向Object添加属性
  • 从Object中删除属性
  • 索引对象中的属性
  • 将项添加到数组
  • 从数组中删除项目
  • 索引数组中的项目
  • 调用Array.pop()
  • 调用Array.push()
  • 调用Array.shift()
  • 调用Array.unshift()
  • 调用Array.slice()

任何文章或链接的更多细节也将不胜感激.:)

编辑:我真的很想知道JavaScript数组和对象是如何工作的.此外,在什么情况下 V8引擎"知道""转换"到另一个数据结构?

例如,假设我用...创建一个数组

var arr = [];
arr[10000000] = 20;
arr.push(21);
Run Code Online (Sandbox Code Playgroud)

这里到底发生了什么?

或者......这个怎么样...... ???

var arr = [];
//Add lots of items
for(var i = 0; i < 1000000; i++)
    arr[i] = Math.random();
//Now I use it like a queue...
for(var i = 0; i < arr.length; i++)
{
    var item = arr[i].shift();
    //Do something with item...
} …
Run Code Online (Sandbox Code Playgroud)

javascript arrays performance v8 object

104
推荐指数
2
解决办法
4万
查看次数

标签 统计

arrays ×1

javascript ×1

object ×1

performance ×1

v8 ×1