From 3f000a2627c90fef133aa816c36703b9344574f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Fri, 4 Feb 2022 20:16:41 +0100 Subject: [PATCH] doc: add overhead hints for heap snapshot generation Added some hints that creation of an heap snapshot has significant overhead on memory requirement and event loop utilization. PR-URL: https://github.com/nodejs/node/pull/41822 Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Matteo Collina --- doc/api/v8.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/api/v8.md b/doc/api/v8.md index 19d9225f26634f..f7999f4343d2f5 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -71,6 +71,13 @@ This JSON stream format is intended to be used with tools such as Chrome DevTools. The JSON schema is undocumented and specific to the V8 engine. Therefore, the schema may change from one version of V8 to the next. +Creating a heap snapshot requires memory about twice the size of the heap at +the time the snapshot is created. This results in the risk of OOM killers +terminating the process. + +Generating a snapshot is a synchronous operation which blocks the event loop +for a duration depending on the heap size. + ```js // Print heap snapshot to the console const v8 = require('v8'); @@ -284,6 +291,13 @@ A heap snapshot is specific to a single V8 isolate. When using [worker threads][], a heap snapshot generated from the main thread will not contain any information about the workers, and vice versa. +Creating a heap snapshot requires memory about twice the size of the heap at +the time the snapshot is created. This results in the risk of OOM killers +terminating the process. + +Generating a snapshot is a synchronous operation which blocks the event loop +for a duration depending on the heap size. + ```js const { writeHeapSnapshot } = require('v8'); const {