JavaScript 中的堆和本机内存分配:如何管理

Heap and Native memory allocation in JavaScript: how managed?

本文关键字:何管理 管理 分配 内存 本机 JavaScript      更新时间:2023-09-26

JavaScript 有堆(垃圾回收)内存和本机(类型数组,DOM 元素)内存。

问题:两者之间是否存在平衡,以便如果我想拥有大量类型化数组,它可以工作,但只是减少堆?

通常的模型是分配内存,可以这么说,本机从顶部开始,堆从底部开始。 当需要更多内存时,内存会增加,本机和堆再次移动到顶部/底部,中间有额外的内存。或者一些类似的方法,在两者之间进行权衡。

我意识到这是一个奇怪的问题,但我正在编写大型程序,试图通过类型化数组最大限度地减少内存使用量。

谢谢!

如果您尝试最大程度地减少内存使用量,并且您的代码适合类型化数组,则类型化数组应比常规数组使用更少的内存。 所有这些记忆都来自同一个地方,所以你关于堆与原生的问题对我来说并没有真正的意义。 用于类型化数组的内存越多,可用于使用内存的任何其他内容的内存就越少。 优化的最佳选择是只使用更少的内存,而不用担心什么样的东西正在使用该内存,因为内存是内存,无论它里面有类型化数组还是一个巨大的字符串。

类型化数组像常规数组一样被垃圾回收。 类型化数组的内存效率更高,只是因为它们对数组中的每个元素使用的存储更少,而不是因为它们使用不同类型的内存。