【发布时间】:2016-04-15 07:21:05
【问题描述】:
我有一个大数组用于存储数字(大小为 1000 或更多),这个数组值将用于实时渲染 y 轴线图。
我会不断地unshift 这个数组添加新数据,pop 删除数组中的最后一个数据。此操作允许我的图表从左向右移动。
但是,unshift 和 pop 的这种方法很简单,但是当我的数组大小增加并且我可能有超过 1 个图形时,它会导致内存碎片和时间性能,(第 n 个图形,每个包含一个的大阵列)。请问有没有更好的方法来做这个操作?
【问题讨论】:
-
您对数组操作有任何性能问题,或者这只是理论上的问题?绘制图形比任何数组操作都更耗时。请注意,JavaScript 中的数组不一定是 JS 引擎中的标准数组——它们可以实现为列表或树,以执行
unshift和pop操作。 -
是一个理论问题,做这个操作让我很困扰,尤其是内存碎片问题......我想寻找其他更好的选择......
-
unshift的性能远低于push,因此您最好使用push和shift而不是unshift和pop并反向读取数组。我相信反向阅读也比直接阅读更快。还要检查一下.. code.stephenmorley.org/javascript/queues
标签: javascript arrays