当我启动一个新的nodejs并输入process.memoryUsage()时,它显示
> process.memoryUsage() { rss: 11296768, heapTotal: 7195904, heapUsed: 2964776 }
因此nodejs使用11M内存,而V8的堆使用其中的7M内存。
还有什么东西会消耗剩下的11-7=4M内存,nodejs的c++部分?利布?v8本身?
有没有什么方法或工具可以查看内存分布?
ps:我不需要node- heap /node-memwatch来检测v8堆中的内存。它们主要测量js项目(js文件)使用的内存。我想知道节点本身使用了多少内存。哪些部分使用剩余的4M,以及每个部分使用多少。
发布于 2015-04-09 04:25:45
V8不会在垃圾收集器每次运行时都压缩堆。这意味着中间可能有未使用的空间。这是一个很烂的图表,显示了引擎盖下可能发生的事情。
-------------------------------------------
| | | |
| used | unused | used |
| | | |
-------------------------------------------
所以总的堆大小是分配给最后一个字节的第一个字节。V8可能会在未来的某个时候使用“未使用”的空间,但它不需要这样做。
https://stackoverflow.com/questions/29381497
复制相似问题