|
|
|
# V8
|
|
|
|
|
|
|
|
Stability: 2 - Stable
|
|
|
|
|
|
|
|
This module exposes events and interfaces specific to the version of [V8][]
|
|
|
|
built with Node.js. These interfaces are subject to change by upstream and are
|
|
|
|
therefore not covered under the stability index.
|
|
|
|
|
|
|
|
## getHeapStatistics()
|
|
|
|
|
|
|
|
Returns an object with the following properties
|
|
|
|
|
|
|
|
```js
|
|
|
|
{
|
|
|
|
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
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## getHeapSpaceStatistics()
|
|
|
|
|
|
|
|
Returns statistics about the V8 heap spaces, i.e. the segments which make up
|
|
|
|
the V8 heap. Order of heap spaces nor availability of a heap space can be
|
|
|
|
guaranteed as the statistics are provided via the V8 `GetHeapSpaceStatistics`
|
|
|
|
function.
|
|
|
|
|
|
|
|
Example result:
|
|
|
|
|
|
|
|
```
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"space_name": "new_space",
|
|
|
|
"space_size": 2063872,
|
|
|
|
"space_used_size": 951112,
|
|
|
|
"space_available_size": 80824,
|
|
|
|
"physical_space_size": 2063872
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"space_name": "old_space",
|
|
|
|
"space_size": 3090560,
|
|
|
|
"space_used_size": 2493792,
|
|
|
|
"space_available_size": 0,
|
|
|
|
"physical_space_size": 3090560
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"space_name": "code_space",
|
|
|
|
"space_size": 1260160,
|
|
|
|
"space_used_size": 644256,
|
|
|
|
"space_available_size": 960,
|
|
|
|
"physical_space_size": 1260160
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"space_name": "map_space",
|
|
|
|
"space_size": 1094160,
|
|
|
|
"space_used_size": 201608,
|
|
|
|
"space_available_size": 0,
|
|
|
|
"physical_space_size": 1094160
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"space_name": "large_object_space",
|
|
|
|
"space_size": 0,
|
|
|
|
"space_used_size": 0,
|
|
|
|
"space_available_size": 1490980608,
|
|
|
|
"physical_space_size": 0
|
|
|
|
}
|
|
|
|
]
|
|
|
|
```
|
|
|
|
|
|
|
|
## setFlagsFromString(string)
|
|
|
|
|
|
|
|
Set additional V8 command line flags. Use with care; changing settings
|
|
|
|
after the VM has started may result in unpredictable behavior, including
|
|
|
|
crashes and data loss. Or it may simply do nothing.
|
|
|
|
|
|
|
|
The V8 options available for a version of Node.js may be determined by running
|
|
|
|
`node --v8-options`. An unofficial, community-maintained list of options
|
|
|
|
and their effects is available [here][].
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
```js
|
|
|
|
// Print GC events to stdout for one minute.
|
|
|
|
const v8 = require('v8');
|
|
|
|
v8.setFlagsFromString('--trace_gc');
|
|
|
|
setTimeout(function() { v8.setFlagsFromString('--notrace_gc'); }, 60e3);
|
|
|
|
```
|
|
|
|
|
|
|
|
[V8]: https://developers.google.com/v8/
|
|
|
|
[here]: https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md
|