我在各种语言中看到过一些小实用程序,针对所需数组容量,会计算出一个“理想大小”来。通常情况下,当分配的数组大于容量时,会使用这些程序。它们通常通过计算数组长度来工作,使得分配的块大小(以字节为单位)加上内存分配开销等于给定容量所需的最小精确2的幂。根据内存管理方案,这可以显着减少内存碎片化,因为内存块被分配然后释放。
JavaScript允许构建具有预定义长度的数组。那么,“理想大小”概念适用吗?我可以想到四个反对意见(无特定顺序):
因此:是否可以为JavaScript数组编写有效的“理想大小”程序?
JavaScript允许构建具有预定义长度的数组。那么,“理想大小”概念适用吗?我可以想到四个反对意见(无特定顺序):
- JS内存管理系统的工作方式不会从这种策略中受益
- JS引擎已经在内部实现了这样的大小策略
- JS引擎实际上并不将数组保存为连续的内存块,因此整个想法是没有意义的(除了类型化数组)
- 这个想法是适用的,但内存管理是如此依赖于引擎,以至于没有一个单一的“理想大小”策略是可行的
因此:是否可以为JavaScript数组编写有效的“理想大小”程序?
Arrray(2014)
,浏览器很可能会期望你紧接着填充2014个值,并为此做好准备。 - John Dvorak