【发布时间】:2021-05-10 04:33:34
【问题描述】:
const ret1 = [];
const ret2 = [];
for (const points of pointsList) {
ret1.push({ x: points.right.x, y: points.right.y});
ret2.unshift({ x: points.left.x, y: points.left.y});
}
push好像不是内存效率,有什么办法提高吗?
更新:
我认为改进它不是从推送而是使用float32array,有什么建议吗?
【问题讨论】:
-
是什么让你觉得效率低下?
-
内存效率不高怎么办?你在这里分配了一堆对象。您的意思是给现有对象起别名吗?您的意思是预先分配数组吗?
push确实在数组中分配空间,但这就是将对象放入数组时发生的情况。无关主题:我可以说ret2.unshift很慢,因为它在这样的循环中是 O(n^2)。请改用push,最后使用reverse()。 -
@ggorlen 预分配数组是否会让这变得更好?
-
我很抱歉,但我基本上不知道你想要完成什么,问题到底是什么等等,所以很难/不可能提供很多东西建议。请澄清。
标签: javascript typescript memory push memory-efficient