From 72a857f56ceea5e7f1290dc462139a75adda82f2 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 6c14615e08ee41..028226c50487bb 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'); @@ -286,6 +293,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 {