util: integrate node-heapdump into core#26501
Conversation
mcollina
left a comment
There was a problem hiding this comment.
Code LGTM
v8.heapdump.getHeapdump() data format is missing in the docs.
|
Based on some conversations around this, I'm considering just removing the |
|
Updated the PR to:
@bnoordhuis and @richardlau ... may I ask you both to reaffirm your sign-off with the updates. @mcollina ... may I ask you to review the doc updates to see if they address your concerns. |
|
Ah! Nice.
…On Sat, Mar 9, 2019, 13:44 Colin Ihrig ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In doc/api/v8.md
<#26501 (comment)>:
> @@ -135,6 +135,31 @@ to get swapped out by the operating system.
}
```
+## v8.heapdump.getHeapdump()
+<!-- YAML
+added: REPLACEME
+-->
+
+* Returns: {Object}
+
+Returns an object containing a snapshot of the current V8 heap.
+
+## v8.heapdump.triggerHeapdump([filename])
@jasnell <https://github.com/jasnell> see #26527
<#26527>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#26501 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAa2eatm0uknLHz91dYPrHfztyTSgNR5ks5vU7qjgaJpZM4bkOxw>
.
|
|
@joyeecheung ... PTAL, I added a |
|
@vsemozhetbyt @addaleax @richardlau ... PTAL |
|
CI is good |
|
Ok @joyeecheung ... hopefully that'll be the last few nits fixed. This should be ready to go. |
joyeecheung
left a comment
There was a problem hiding this comment.
LGTM. Thanks for following up with the reviews!
|
Resume for flaky failure:https://ci.nodejs.org/job/node-test-pull-request/21505/ |
Adds `v8.writeHeapSnapshot(filename)` with impl adapted from the `node-heapdump` module. Also, adds a v8.getHeapSnapshot() alternative that returns a Readable Stream PR-URL: #26501 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
|
Landed in 5f38797 ... thanks all |
Lazy loading `v8` in `lib/internal/error-serdes.js` reduces the number of loaded modules by the bootstrap code for Worker threads by seven. Refs: nodejs#26501 (comment)
Lazy loading `v8` in `lib/internal/error-serdes.js` reduces the number of loaded modules by the bootstrap code for Worker threads by seven. PR-URL: nodejs#26689 Refs: nodejs#26501 (comment) Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Adds `v8.writeHeapSnapshot(filename)` with impl adapted from the `node-heapdump` module. Also, adds a v8.getHeapSnapshot() alternative that returns a Readable Stream PR-URL: nodejs#26501 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Lazy loading `v8` in `lib/internal/error-serdes.js` reduces the number of loaded modules by the bootstrap code for Worker threads by seven. PR-URL: #26689 Refs: #26501 (comment) Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Notable changes:
* events:
* Added a `once` function to use `EventEmitter` with promises
(#26078).
* tty:
* Added a `hasColors` method to `WriteStream`
(#26247).
* Added NO_COLOR and FORCE_COLOR support
(#26485).
* v8:
* Added `v8.getHeapSnapshot` and `v8.writeHeapSnapshot` to generate snapshots
in the format used by tools such as Chrome DevTools
(#26501).
* meta:
* Gireesh Punathil is now a member of the Technical Steering Committee
(#26657).
* Added ZYSzys to collaborators (#26730).
PR-URL: #26949
Notable changes:
* crypto
* Allow deriving public from private keys (Tobias Nießen)
[#26278](#26278).
* events
* Added a `once` function to use `EventEmitter` with promises
(Matteo Collina) [#26078](#26078).
* tty
* Added a `hasColors` method to `WriteStream` (Ruben Bridgewater)
[#26247](#26247).
* Added NO_COLOR and FORCE_COLOR support (Ruben Bridgewater)
[#26485](#26485).
* v8
* Added `v8.getHeapSnapshot` and `v8.writeHeapSnapshot` to generate snapshots
in the format used by tools such as Chrome DevTools (James M Snell)
[#26501](#26501).
* worker
* Added `worker.moveMessagePortToContext`. This enables using MessagePorts in
different vm.Contexts, aiding with the isolation that the vm module seeks to
provide (Anna Henningsen)
[#26497](#26497).
* C++ API
* `AddPromiseHook` is now deprecated. This API was added to fill an use case
that is served by `async_hooks`, since that has `Promise` support
(Anna Henningsen) [#26529](#26529).
* Added a `Stop` API to shut down Node.js while it is running
(Gireesh Punathil) [#21283](#21283).
* meta
* [Gireesh Punathil](https://github.com/gireeshpunathil) is now a member of
the Technical Steering Committee
[#26657](#26657).
* Added [Yongsheng Zhang](https://github.com/ZYSzys) to collaborators
[#26730](#26730).
PR-URL: #26949
Notable changes:
* crypto
* Allow deriving public from private keys (Tobias Nießen)
[#26278](#26278).
* events
* Added a `once` function to use `EventEmitter` with promises
(Matteo Collina) [#26078](#26078).
* tty
* Added a `hasColors` method to `WriteStream` (Ruben Bridgewater)
[#26247](#26247).
* Added NO_COLOR and FORCE_COLOR support (Ruben Bridgewater)
[#26485](#26485).
* v8
* Added `v8.getHeapSnapshot` and `v8.writeHeapSnapshot` to generate snapshots
in the format used by tools such as Chrome DevTools (James M Snell)
[#26501](#26501).
* worker
* Added `worker.moveMessagePortToContext`. This enables using MessagePorts in
different vm.Contexts, aiding with the isolation that the vm module seeks to
provide (Anna Henningsen)
[#26497](#26497).
* C++ API
* `AddPromiseHook` is now deprecated. This API was added to fill an use case
that is served by `async_hooks`, since that has `Promise` support
(Anna Henningsen) [#26529](#26529).
* Added a `Stop` API to shut down Node.js while it is running
(Gireesh Punathil) [#21283](#21283).
* meta
* [Gireesh Punathil](https://github.com/gireeshpunathil) is now a member of
the Technical Steering Committee
[#26657](#26657).
* Added [Yongsheng Zhang](https://github.com/ZYSzys) to collaborators
[#26730](#26730).
PR-URL: #26949
Notable changes:
* crypto
* Allow deriving public from private keys (Tobias Nießen)
[#26278](#26278).
* events
* Added a `once` function to use `EventEmitter` with promises
(Matteo Collina) [#26078](#26078).
* tty
* Added a `hasColors` method to `WriteStream` (Ruben Bridgewater)
[#26247](#26247).
* Added NO_COLOR and FORCE_COLOR support (Ruben Bridgewater)
[#26485](#26485).
* v8
* Added `v8.getHeapSnapshot` and `v8.writeHeapSnapshot` to generate snapshots
in the format used by tools such as Chrome DevTools (James M Snell)
[#26501](#26501).
* worker
* Added `worker.moveMessagePortToContext`. This enables using MessagePorts in
different vm.Contexts, aiding with the isolation that the vm module seeks to
provide (Anna Henningsen)
[#26497](#26497).
* C++ API
* `AddPromiseHook` is now deprecated. This API was added to fill an use case
that is served by `async_hooks`, since that has `Promise` support
(Anna Henningsen) [#26529](#26529).
* Added a `Stop` API to shut down Node.js while it is running
(Gireesh Punathil) [#21283](#21283).
* meta
* [Gireesh Punathil](https://github.com/gireeshpunathil) is now a member of
the Technical Steering Committee
[#26657](#26657).
* Added [Yongsheng Zhang](https://github.com/ZYSzys) to collaborators
[#26730](#26730).
PR-URL: #26949
|
@jasnell, should this land on v10.x? Please add the |
Adds
v8.heapdump.getHeapdump()andv8.heapdump.triggerHeapdump(filename)methods with impl adapted from thenode-heapdumpmodule.Not included is the
SIGUSR2signal, which can be handled by userland./cc nodejs/diagnostics#279
@nodejs/diagnostics
Also see: #26498
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes