53 std::optional<v8::Isolate::Priority>
priority = std::nullopt;
95template <
typename EventType>
112 std::optional<v8::Isolate::Priority>
priority = std::nullopt;
118#if defined(CPPGC_YOUNG_GENERATION)
122 double collection_rate_cpp_in_percent = -1.0;
123 double efficiency_cpp_in_bytes_per_us = -1.0;
124 double main_thread_efficiency_cpp_in_bytes_per_us = -1.0;
188 bool IsEmpty()
const {
return id_ == kEmptyId; }
195 friend class ::v8::Context;
196 friend class ::v8::internal::Isolate;
198 explicit ContextId(uintptr_t
id) : id_(id) {}
200 static constexpr uintptr_t kEmptyId = 0;
208#define ADD_MAIN_THREAD_EVENT(E) \
209 virtual void AddMainThreadEvent(const E&, ContextId) {}
219#undef ADD_MAIN_THREAD_EVENT
227#define ADD_THREAD_SAFE_EVENT(E) \
228 virtual void AddThreadSafeEvent(const E&) {}
230#undef ADD_THREAD_SAFE_EVENT
262 int64_t gc_full_atomic_wall_clock_duration_us = 0;
263 int64_t gc_full_incremental_wall_clock_duration_us = 0;
264 int64_t gc_young_wall_clock_duration_us = 0;
266 int64_t v8_execute_us = 0;
Definition: v8-isolate.h:291
Definition: v8-local-handle.h:366
Definition: v8-local-handle.h:734
static void IncrementLongTasksStatsCounter(v8::Isolate *isolate)
Definition: v8-internal.h:1249
Definition: v8-metrics.h:184
ContextId()
Definition: v8-metrics.h:186
bool operator==(const ContextId &other) const
Definition: v8-metrics.h:191
static const ContextId Empty()
Definition: v8-metrics.h:189
bool operator!=(const ContextId &other) const
Definition: v8-metrics.h:192
bool IsEmpty() const
Definition: v8-metrics.h:188
Definition: v8-metrics.h:180
virtual ~Recorder()=default
static MaybeLocal< Context > GetContext(Isolate *isolate, ContextId id)
virtual void NotifyIsolateDisposal()
Definition: v8-metrics.h:232
static ContextId GetContextId(Local< Context > context)
Definition: libplatform.h:15
Definition: v8-metrics.h:96
std::vector< EventType > events
Definition: v8-metrics.h:97
Definition: v8-metrics.h:47
GarbageCollectionPhases main_thread_incremental
Definition: v8-metrics.h:62
double collection_weight_in_percent
Definition: v8-metrics.h:77
double collection_weight_cpp_in_percent
Definition: v8-metrics.h:78
double main_thread_efficiency_cpp_in_bytes_per_us
Definition: v8-metrics.h:76
GarbageCollectionLimits global_consumed
Definition: v8-metrics.h:69
int64_t external_memory_bytes
Definition: v8-metrics.h:70
double collection_rate_cpp_in_percent
Definition: v8-metrics.h:72
GarbageCollectionSizes memory_cpp
Definition: v8-metrics.h:67
GarbageCollectionPhases main_thread_cpp
Definition: v8-metrics.h:59
GarbageCollectionLimits old_generation_consumed
Definition: v8-metrics.h:68
double efficiency_cpp_in_bytes_per_us
Definition: v8-metrics.h:74
GarbageCollectionSizes memory
Definition: v8-metrics.h:66
int64_t total_duration_since_last_mark_compact
Definition: v8-metrics.h:82
bool reduce_memory
Definition: v8-metrics.h:54
GarbageCollectionPhases main_thread_incremental_cpp
Definition: v8-metrics.h:63
double main_thread_efficiency_in_bytes_per_us
Definition: v8-metrics.h:75
GarbageCollectionSizes objects
Definition: v8-metrics.h:64
int64_t incremental_marking_start_stop_wall_clock_duration_in_us
Definition: v8-metrics.h:81
GarbageCollectionPhases main_thread_atomic_cpp
Definition: v8-metrics.h:61
double collection_rate_in_percent
Definition: v8-metrics.h:71
bool is_loading
Definition: v8-metrics.h:55
GarbageCollectionPhases main_thread
Definition: v8-metrics.h:58
int incremental_marking_reason
Definition: v8-metrics.h:49
std::optional< v8::Isolate::Priority > priority
Definition: v8-metrics.h:53
GarbageCollectionPhases total_cpp
Definition: v8-metrics.h:57
GarbageCollectionPhases total
Definition: v8-metrics.h:56
double main_thread_collection_weight_in_percent
Definition: v8-metrics.h:79
GarbageCollectionPhases main_thread_atomic
Definition: v8-metrics.h:60
int reason
Definition: v8-metrics.h:48
double efficiency_in_bytes_per_us
Definition: v8-metrics.h:73
GarbageCollectionSizes objects_cpp
Definition: v8-metrics.h:65
double main_thread_collection_weight_cpp_in_percent
Definition: v8-metrics.h:80
Definition: v8-metrics.h:85
int64_t cpp_wall_clock_duration_in_us
Definition: v8-metrics.h:87
int64_t wall_clock_duration_in_us
Definition: v8-metrics.h:86
Definition: v8-metrics.h:90
int64_t wall_clock_duration_in_us
Definition: v8-metrics.h:91
int64_t cpp_wall_clock_duration_in_us
Definition: v8-metrics.h:92
Definition: v8-metrics.h:40
int64_t bytes_limit
Definition: v8-metrics.h:42
int64_t bytes_max
Definition: v8-metrics.h:44
int64_t bytes_current
Definition: v8-metrics.h:43
int64_t bytes_baseline
Definition: v8-metrics.h:41
Definition: v8-metrics.h:26
int64_t sweep_wall_clock_duration_in_us
Definition: v8-metrics.h:30
int64_t weak_wall_clock_duration_in_us
Definition: v8-metrics.h:31
int64_t total_wall_clock_duration_in_us
Definition: v8-metrics.h:27
int64_t mark_wall_clock_duration_in_us
Definition: v8-metrics.h:29
int64_t compact_wall_clock_duration_in_us
Definition: v8-metrics.h:28
Definition: v8-metrics.h:34
int64_t bytes_freed
Definition: v8-metrics.h:37
int64_t bytes_after
Definition: v8-metrics.h:36
int64_t bytes_before
Definition: v8-metrics.h:35
Definition: v8-metrics.h:107
int64_t main_thread_wall_clock_duration_in_us
Definition: v8-metrics.h:114
double collection_rate_in_percent
Definition: v8-metrics.h:115
double efficiency_in_bytes_per_us
Definition: v8-metrics.h:116
double main_thread_efficiency_in_bytes_per_us
Definition: v8-metrics.h:117
int reason
Definition: v8-metrics.h:108
int64_t total_wall_clock_duration_in_us
Definition: v8-metrics.h:113
std::optional< v8::Isolate::Priority > priority
Definition: v8-metrics.h:112
Definition: v8-metrics.h:249
static void Reset(Isolate *isolate)
Definition: v8-metrics.h:253
static LongTaskStats Get(Isolate *isolate)
Definition: v8-metrics.h:142
const size_t liftoff_bailout_count
Definition: v8-metrics.h:150
const bool cached
Definition: v8-metrics.h:145
const bool success
Definition: v8-metrics.h:148
const bool deserialized
Definition: v8-metrics.h:146
const bool lazy
Definition: v8-metrics.h:147
const size_t code_size_in_bytes
Definition: v8-metrics.h:149
const bool streamed
Definition: v8-metrics.h:144
int64_t wall_clock_duration_in_us
Definition: v8-metrics.h:152
const bool async
Definition: v8-metrics.h:143
Definition: v8-metrics.h:132
const size_t module_size_in_bytes
Definition: v8-metrics.h:136
const size_t function_count
Definition: v8-metrics.h:137
const bool success
Definition: v8-metrics.h:135
int64_t wall_clock_duration_in_us
Definition: v8-metrics.h:139
const bool async
Definition: v8-metrics.h:133
const bool streamed
Definition: v8-metrics.h:134
Definition: v8-metrics.h:155
const bool success
Definition: v8-metrics.h:157
const bool async
Definition: v8-metrics.h:156
const size_t imported_function_count
Definition: v8-metrics.h:158
int64_t wall_clock_duration_in_us
Definition: v8-metrics.h:160
Definition: v8-metrics.h:163
const size_t count
Definition: v8-metrics.h:164
#define ADD_MAIN_THREAD_EVENT(E)
Definition: v8-metrics.h:208
#define ADD_THREAD_SAFE_EVENT(E)
Definition: v8-metrics.h:227
#define V8_EXPORT
Definition: v8config.h:855
#define V8_INLINE
Definition: v8config.h:508