node.js - 为什么 Node.js 中的“malloced_memory”低于“used_heap_size”?
问题描述
在每个示例中似乎v8.getHeapStatistics()
都malloced_memory
低于used_heap_size
:
{
total_heap_size: 7326976,
total_heap_size_executable: 4194304,
total_physical_size: 7326976,
total_available_size: 1152656,
used_heap_size: 3476208,
heap_size_limit: 1535115264,
malloced_memory: 16384,
peak_malloced_memory: 1127496,
does_zap_garbage: 0,
number_of_native_contexts: 1,
number_of_detached_contexts: 0
}
怎么可能malloced_memory
低于used_heap_size
?不是used_heap_size
的子集malloced_memory
吗?
我的假设(显然不正确,除非malloced_memory
在 KB 中并且used_heap_size
在 B 中):
malloced_memory
:从操作系统获取的总内存(需要创建 V8 堆、存储Buffer
等)。used_heap_size
:V8 堆上所有对象的总大小(包括未收集的垃圾)。
解决方案
(这里是 V8 开发人员。)
托管堆的内存是mmap
ed,而不是malloc
ed,因此它不应该是一个子集。
推荐阅读
- javascript - 单击下拉列表 #1 中的值应自动打开下拉列表 #2 并关闭下拉列表 #1
- python - str.format 通过加入列表的值来格式化列表
- talend - 是否可以在 Talend Open Studio 独立作业中提示我输入文件名?
- android - 片段导入类型
- java - 比较javers中子类和父类的对象
- java - 如何为 Spring REST 控制器设置多个基本路径(例如,一个或多个包的公共基本路径)
- javascript - 为同一页面上的每个重复类运行函数
- c# - 在单个数据库上具有多个 DbContext 的 EF Core 迁移
- pyspark - pyspark:将结构分解成列
- ios - 有没有特定的方法来收听 PDFDocument 或 PDFView url 加载的完成情况?