关于 JS 中内存分配的问题
小白求问,JS 中似乎不存在底层操作的接口,所以如果我想实现一定数量的对象在内存中分配连续是不可能的对吧?
小白求问,JS 中似乎不存在底层操作的接口,所以如果我想实现一定数量的对象在内存中分配连续是不可能的对吧?
ArrayBuffer 创建出来的缓冲区是连续分配的内存。
感觉我这一篇应该能解决你的困惑.
欢迎探讨.
应该能解决你的大部分问题
JS 的内存管理被抽象出了几层,比如 JS 引擎有自己的“内存”管理机制,运行引擎的操作系统也有自己的“内存”管理机制,操作系统运行的硬件系统也有自己的内存管理机制。你在 JS 层去看内存情况只能看到 JS 引擎抽象出来的内存情况,在 JS 引擎层看也只能看到操作系统给 JS 引擎抽象出来的内存空间情况。
CPU 通常不会直接用内存数据进行计算,而是会经过有多级缓存,最终到达 CPU 的寄存器再真正执行计算,而多级缓存、寄存器的情况和使用方式也都影响计算效率。
JS 是一种抽象程度很高的语言,不同 JS 引擎的底层实现有差别,可能会为了优化执行效率、内存占用量玩各种内存优化,而且现代 JS 引擎的执行效率极高,完全能满足绝大多数业务场景,而且如今做极致性能优化的成本可能会高于性能浪费的成本,所以有时候加硬件是更经济的方案。
在操作系统级别有对计算和存储性能较高的要求,可以考虑使用 WebAssembly 方案,使用 CC++Rust 等系统开发语言写高性能程序,然后通过 WebAssembly 技术与 JS 程序交互。如果使用 Node.js 还可以考虑 N-API 方案。
不如直接说 X 问题