与JavaScript(特别是Google V8)中的数组和对象相关的性能非常有趣。我在Internet上的任何地方都找不到有关此主题的详尽文章。我了解某些对象使用类作为其基础数据结构。如果有很多属性,有时将其视为哈希表?我也了解,有时有时将数组像C ++数组一样对待(即快速随机索引,缓慢删除和调整大小)。而且,有时将它们更像对象(快速索引,快速插入/删除,更多内存)。而且,也许有时它们被存储为链接列表(例如,慢速随机索引,开始/结尾处的快速删除/插入)JavaScript中数组/对象检索和操作的精确性能是什么?(专门针对Google V8)更具体地说,它对性能的影响:向对象添加属性从对象中删除属性索引对象中的属性将项目添加到数组从阵列中删除项目索引数组中的项目调用Array.pop()调用Array.push()调用Array.shift()调用Array.unshift()调用Array.slice()任何文章或更多细节的链接也将不胜感激。:)编辑:我真的很想知道JavaScript数组和对象如何在后台工作。此外,在什么情况下 V8引擎“知道”要“切换”到另一个数据结构?例如,假设我用...创建一个数组var arr = [];arr[10000000] = 20;arr.push(21);这到底是怎么回事?还是...这呢... ???var arr = [];//Add lots of itemsfor(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...}对于常规阵列,性能将很糟糕。相反,如果使用了LinkedList……还不错。
添加回答
举报
0/150
提交
取消