From ca67e5876ef8c682dc0177b3fada250c9f4f7306 Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Fri, 13 Sep 2019 17:25:31 +0300 Subject: [PATCH 1/6] perf_hooks: add property flags to GCPerformanceEntry --- doc/api/perf_hooks.md | 19 +++++++++++++++++++ src/node_perf.cc | 13 +++++++++++++ src/node_perf.h | 17 ++++++++++++++++- test/parallel/test-performance-gc.js | 5 ++++- 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/doc/api/perf_hooks.md b/doc/api/perf_hooks.md index 02dee38bae1987..25d0e9976a90cc 100644 --- a/doc/api/perf_hooks.md +++ b/doc/api/perf_hooks.md @@ -201,6 +201,25 @@ The value may be one of: * `perf_hooks.constants.NODE_PERFORMANCE_GC_INCREMENTAL` * `perf_hooks.constants.NODE_PERFORMANCE_GC_WEAKCB` +### performanceEntry.flags + + +* {number} + +When `performanceEntry.entryType` is equal to `'gc'`, the `performance.flags` +property contain additional information about garbage collection operation. +The value may be one of: + +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_NO` +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED` +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_FORCED` +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING` +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE` +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY` +* `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE` + ## Class: `PerformanceNodeTiming extends PerformanceEntry` * {number} From 4b55aacf46f4961bdd4ea633358117ca91ec7f48 Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Sun, 15 Sep 2019 13:26:42 +0300 Subject: [PATCH 3/6] perf_hooks: fix lint-cpp --- src/node_perf.cc | 21 ++++++++++++++------- src/node_perf.h | 21 ++++++++++++++------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/node_perf.cc b/src/node_perf.cc index 0a0ba3a6be8196..68b015f33eda49 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -592,13 +592,20 @@ void Initialize(Local target, NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_INCREMENTAL); NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_WEAKCB); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_NO); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_FORCED); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY); - NODE_DEFINE_CONSTANT(constants, NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_NO); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_FORCED); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY); + NODE_DEFINE_CONSTANT( + constants, NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE); #define V(name, _) \ NODE_DEFINE_HIDDEN_CONSTANT(constants, NODE_PERFORMANCE_ENTRY_TYPE_##name); diff --git a/src/node_perf.h b/src/node_perf.h index 03c741e6d80134..4f5ca93f223289 100644 --- a/src/node_perf.h +++ b/src/node_perf.h @@ -112,13 +112,20 @@ enum PerformanceGCKind { }; enum PerformanceGCFlags { - NODE_PERFORMANCE_GC_FLAGS_NO = GCCallbackFlags::kNoGCCallbackFlags, - NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED = GCCallbackFlags::kGCCallbackFlagConstructRetainedObjectInfos, - NODE_PERFORMANCE_GC_FLAGS_FORCED = GCCallbackFlags::kGCCallbackFlagForced, - NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING = GCCallbackFlags::kGCCallbackFlagSynchronousPhantomCallbackProcessing, - NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE = GCCallbackFlags::kGCCallbackFlagCollectAllAvailableGarbage, - NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY = GCCallbackFlags::kGCCallbackFlagCollectAllExternalMemory, - NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE = GCCallbackFlags::kGCCallbackScheduleIdleGarbageCollection + NODE_PERFORMANCE_GC_FLAGS_NO = + GCCallbackFlags::kNoGCCallbackFlags, + NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED = + GCCallbackFlags::kGCCallbackFlagConstructRetainedObjectInfos, + NODE_PERFORMANCE_GC_FLAGS_FORCED = + GCCallbackFlags::kGCCallbackFlagForced, + NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING = + GCCallbackFlags::kGCCallbackFlagSynchronousPhantomCallbackProcessing, + NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE = + GCCallbackFlags::kGCCallbackFlagCollectAllAvailableGarbage, + NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY = + GCCallbackFlags::kGCCallbackFlagCollectAllExternalMemory, + NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE = + GCCallbackFlags::kGCCallbackScheduleIdleGarbageCollection }; class GCPerformanceEntry : public PerformanceEntry { From 36b01b7e6f697e78ed8977c4268e0710ccd73c8e Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Fri, 6 Dec 2019 08:44:05 +0300 Subject: [PATCH 4/6] perf_hooks: fix REPLACEME in doc --- doc/api/perf_hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/perf_hooks.md b/doc/api/perf_hooks.md index 2481f067eb0a31..9f02ecafcc37ed 100644 --- a/doc/api/perf_hooks.md +++ b/doc/api/perf_hooks.md @@ -203,7 +203,7 @@ The value may be one of: ### performanceEntry.flags * {number} From d5e1a8a1bea57c750c9953e17b52fb35f61bd862 Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Sun, 12 Jan 2020 14:47:57 +0300 Subject: [PATCH 5/6] perf_hooks: remove empty line in test --- test/parallel/test-performance-gc.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/parallel/test-performance-gc.js b/test/parallel/test-performance-gc.js index c7728c7dd8a6f0..aef0ee14254146 100644 --- a/test/parallel/test-performance-gc.js +++ b/test/parallel/test-performance-gc.js @@ -13,7 +13,6 @@ const { NODE_PERFORMANCE_GC_MINOR, NODE_PERFORMANCE_GC_INCREMENTAL, NODE_PERFORMANCE_GC_WEAKCB, - NODE_PERFORMANCE_GC_FLAGS_FORCED } = constants; From bce3cb60e1c9fc163900b67f856cc83febd86478 Mon Sep 17 00:00:00 2001 From: Kirill Fomichev Date: Mon, 3 Feb 2020 08:13:39 +0300 Subject: [PATCH 6/6] perf_hooks: adjust words in doc --- doc/api/perf_hooks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/perf_hooks.md b/doc/api/perf_hooks.md index 9f02ecafcc37ed..36668b5cc53436 100644 --- a/doc/api/perf_hooks.md +++ b/doc/api/perf_hooks.md @@ -209,7 +209,7 @@ added: REPLACEME * {number} When `performanceEntry.entryType` is equal to `'gc'`, the `performance.flags` -property contain additional information about garbage collection operation. +property contains additional information about garbage collection operation. The value may be one of: * `perf_hooks.constants.NODE_PERFORMANCE_GC_FLAGS_NO`