Dim*_*imi 8 javascript arrays performance memory-management linked-list
我目前正在开发一个项目,要求我遍历一个值列表,并在列表中已有的每个值之间添加一个新值.这将在每次迭代时发生,因此列表将呈指数级增长.我决定将列表实现为链接列表是个好主意.现在,JS没有默认的Linked List数据结构,创建一个没有问题.
但我的问题是,从头开始创建一个简单的链接列表是否值得,或者只是创建一个数组并使用splice()插入每个元素会更好吗?事实上,由于开销会不会降低效率?
使用链表,事实上,由于规范的复杂性和体面的JIT,大多数在用户javascript中完成的自定义实现都会击败内置实现.例如,请参阅https://github.com/petkaantonov/deque
乔治所说的每一点都是100%错误的,除非你在10年前使用时间机器.
至于实现,不要创建包含值的外部链表,但要使值自然地链接列表节点.否则你将使用太多的内存.
geo*_*rge -2
JavaScript 是一种解释性语言。如果你想实现一个链表,那么你会循环很多次!口译员的翻译速度会非常慢。解释器提供的内置函数经过解释器优化和编译,因此运行速度更快。我会选择对数组进行切片,然后再次连接所有内容,它应该比实现您自己的数据结构更快。
javascript 也是按值传递而不是按指针/引用传递,那么你将如何实现链表呢?
| 归档时间: |
|
| 查看次数: |
2169 次 |
| 最近记录: |