распределение памяти по nodejs

Когда я запускаю новый nodejs и набираю process.memoryUsage (), он показывает

> process.memoryUsage()
{ rss: 11296768,
heapTotal: 7195904,
heapUsed: 2964776 }

поэтому nodejs использует память 11M, а куча v8 использует 7M из них.

Что еще потребляет оставшуюся 11-7 = 4M память, часть c ++ nodejs? libuv? сам v8?

Есть ли какие-либо методы или инструменты, чтобы увидеть распределение памяти?

PS: мне не нужны node-heap / node-memwatch для обнаружения памяти в куче v8. В основном они измеряют память, используемую проектом js (файлы js). Я хочу знать память, используемую самим узлом. Какие части используют оставшиеся
4M, и сколько использует каждая часть.

0

Решение

V8 не сжимает кучу каждый раз, когда запускается сборщик мусора. Это означает, что между ними может быть неиспользуемое пространство. Вот действительно хромая диаграмма, чтобы показать, что может происходить под капотом.

-------------------------------------------
|            |             |              |
|   used     |   unused    |      used    |
|            |             |              |
-------------------------------------------

Таким образом, общий размер кучи — это первый байт, выделенный последнему выделенному байту. V8, вероятно, будет использовать «неиспользуемое» пространство в какой-то момент в будущем, но это не нужно.

1

Другие решения


По вопросам рекламы [email protected]