Skip to content

Commit 4af0fbd

Browse files
theanarkhtargos
authored andcommitted
v8: export cpu_profiler_metadata_size in getHeapCodeStatistics
PR-URL: #42818 Reviewed-By: Darshan Sen <raisinten@gmail.com>
1 parent a0638a2 commit 4af0fbd

File tree

4 files changed

+15
-5
lines changed

4 files changed

+15
-5
lines changed

doc/api/v8.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,23 @@ added: v12.8.0
4141

4242
* Returns: {Object}
4343

44-
Returns an object with the following properties:
44+
Get statistics about code and its metadata in the heap, see V8
45+
[`GetHeapCodeAndMetadataStatistics`][] API. Returns an object with the
46+
following properties:
4547

4648
* `code_and_metadata_size` {number}
4749
* `bytecode_and_metadata_size` {number}
4850
* `external_script_source_size` {number}
51+
* `cpu_profiler_metadata_size` {number}
4952

5053
<!-- eslint-skip -->
5154

5255
```js
5356
{
5457
code_and_metadata_size: 212208,
5558
bytecode_and_metadata_size: 161368,
56-
external_script_source_size: 1410794
59+
external_script_source_size: 1410794,
60+
cpu_profiler_metadata_size: 0,
5761
}
5862
```
5963

@@ -882,6 +886,7 @@ occur synchronously in the case of `Promise.resolve()` or `Promise.reject()`.
882886
[`Deserializer`]: #class-v8deserializer
883887
[`ERR_BUFFER_TOO_LARGE`]: errors.md#err_buffer_too_large
884888
[`Error`]: errors.md#class-error
889+
[`GetHeapCodeAndMetadataStatistics`]: https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#a6079122af17612ef54ef3348ce170866
885890
[`GetHeapSpaceStatistics`]: https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#ac673576f24fdc7a33378f8f57e1d13a4
886891
[`NODE_V8_COVERAGE`]: cli.md#node_v8_coveragedir
887892
[`Serializer`]: #class-v8serializer

lib/v8.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ const {
121121
// Properties for heap code statistics buffer extraction.
122122
kCodeAndMetadataSizeIndex,
123123
kBytecodeAndMetadataSizeIndex,
124-
kExternalScriptSourceSizeIndex
124+
kExternalScriptSourceSizeIndex,
125+
kCPUProfilerMetaDataSizeIndex,
125126
} = binding;
126127

127128
const kNumberOfHeapSpaces = kHeapSpaces.length;
@@ -209,6 +210,7 @@ function getHeapSpaceStatistics() {
209210
* code_and_metadata_size: number;
210211
* bytecode_and_metadata_size: number;
211212
* external_script_source_size: number;
213+
* cpu_profiler_metadata_size: number;
212214
* }}
213215
*/
214216
function getHeapCodeStatistics() {
@@ -218,7 +220,8 @@ function getHeapCodeStatistics() {
218220
return {
219221
code_and_metadata_size: buffer[kCodeAndMetadataSizeIndex],
220222
bytecode_and_metadata_size: buffer[kBytecodeAndMetadataSizeIndex],
221-
external_script_source_size: buffer[kExternalScriptSourceSizeIndex]
223+
external_script_source_size: buffer[kExternalScriptSourceSizeIndex],
224+
cpu_profiler_metadata_size: buffer[kCPUProfilerMetaDataSizeIndex],
222225
};
223226
}
224227

src/node_v8.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ static constexpr size_t kHeapSpaceStatisticsPropertiesCount =
8282
#define HEAP_CODE_STATISTICS_PROPERTIES(V) \
8383
V(0, code_and_metadata_size, kCodeAndMetadataSizeIndex) \
8484
V(1, bytecode_and_metadata_size, kBytecodeAndMetadataSizeIndex) \
85-
V(2, external_script_source_size, kExternalScriptSourceSizeIndex)
85+
V(2, external_script_source_size, kExternalScriptSourceSizeIndex) \
86+
V(3, cpu_profiler_metadata_size, kCPUProfilerMetaDataSizeIndex)
8687

8788
#define V(a, b, c) +1
8889
static const size_t kHeapCodeStatisticsPropertiesCount =

test/parallel/test-v8-stats.js

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const heapCodeStatistics = v8.getHeapCodeStatistics();
2929
const heapCodeStatisticsKeys = [
3030
'bytecode_and_metadata_size',
3131
'code_and_metadata_size',
32+
'cpu_profiler_metadata_size',
3233
'external_script_source_size'];
3334
assert.deepStrictEqual(Object.keys(heapCodeStatistics).sort(),
3435
heapCodeStatisticsKeys);

0 commit comments

Comments
 (0)