v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
metric-recorder.h
Go to the documentation of this file.
1
// Copyright 2021 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_HEAP_CPPGC_METRIC_RECORDER_H_
6
#define V8_HEAP_CPPGC_METRIC_RECORDER_H_
7
8
#include <cstdint>
9
10
namespace
cppgc
{
11
namespace
internal
{
12
13
class
StatsCollector;
14
21
class
MetricRecorder
{
22
public
:
23
struct
GCCycle
{
24
enum class
Type
{
kMinor
,
kMajor
};
25
struct
IncrementalPhases
{
26
int64_t
mark_duration_us
= -1;
27
int64_t
sweep_duration_us
= -1;
28
};
29
struct
Phases
:
public
IncrementalPhases
{
30
int64_t
weak_duration_us
= -1;
31
int64_t
compact_duration_us
= -1;
32
};
33
struct
Sizes
{
34
int64_t
before_bytes
= -1;
35
int64_t
after_bytes
= -1;
36
int64_t
freed_bytes
= -1;
37
};
38
39
Type
type =
Type::kMajor
;
40
Phases
total
;
41
Phases
main_thread
;
42
Phases
main_thread_atomic
;
43
IncrementalPhases
main_thread_incremental
;
44
Sizes
objects
;
45
Sizes
memory
;
46
double
collection_rate_in_percent
;
47
double
efficiency_in_bytes_per_us
;
48
double
main_thread_efficiency_in_bytes_per_us
;
49
};
50
51
struct
MainThreadIncrementalMark
{
52
int64_t
duration_us
= -1;
53
};
54
55
struct
MainThreadIncrementalSweep
{
56
int64_t
duration_us
= -1;
57
};
58
59
virtual
~MetricRecorder
() =
default
;
60
61
virtual
void
AddMainThreadEvent
(
const
GCCycle
& event) {}
62
virtual
void
AddMainThreadEvent
(
const
MainThreadIncrementalMark
& event) {}
63
virtual
void
AddMainThreadEvent
(
const
MainThreadIncrementalSweep
& event) {}
64
};
65
66
}
// namespace internal
67
}
// namespace cppgc
68
69
#endif
// V8_HEAP_CPPGC_METRIC_RECORDER_H_
cppgc::internal::MetricRecorder
Definition
metric-recorder.h:21
cppgc::internal::MetricRecorder::~MetricRecorder
virtual ~MetricRecorder()=default
cppgc::internal::MetricRecorder::AddMainThreadEvent
virtual void AddMainThreadEvent(const GCCycle &event)
Definition
metric-recorder.h:61
cppgc::internal::MetricRecorder::AddMainThreadEvent
virtual void AddMainThreadEvent(const MainThreadIncrementalMark &event)
Definition
metric-recorder.h:62
cppgc::internal::MetricRecorder::AddMainThreadEvent
virtual void AddMainThreadEvent(const MainThreadIncrementalSweep &event)
Definition
metric-recorder.h:63
cppgc
Definition
cross-heap-remembered-set.h:14
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
cppgc::internal::MetricRecorder::GCCycle::IncrementalPhases
Definition
metric-recorder.h:25
cppgc::internal::MetricRecorder::GCCycle::IncrementalPhases::mark_duration_us
int64_t mark_duration_us
Definition
metric-recorder.h:26
cppgc::internal::MetricRecorder::GCCycle::IncrementalPhases::sweep_duration_us
int64_t sweep_duration_us
Definition
metric-recorder.h:27
cppgc::internal::MetricRecorder::GCCycle::Phases
Definition
metric-recorder.h:29
cppgc::internal::MetricRecorder::GCCycle::Phases::compact_duration_us
int64_t compact_duration_us
Definition
metric-recorder.h:31
cppgc::internal::MetricRecorder::GCCycle::Phases::weak_duration_us
int64_t weak_duration_us
Definition
metric-recorder.h:30
cppgc::internal::MetricRecorder::GCCycle::Sizes
Definition
metric-recorder.h:33
cppgc::internal::MetricRecorder::GCCycle::Sizes::after_bytes
int64_t after_bytes
Definition
metric-recorder.h:35
cppgc::internal::MetricRecorder::GCCycle::Sizes::before_bytes
int64_t before_bytes
Definition
metric-recorder.h:34
cppgc::internal::MetricRecorder::GCCycle::Sizes::freed_bytes
int64_t freed_bytes
Definition
metric-recorder.h:36
cppgc::internal::MetricRecorder::GCCycle
Definition
metric-recorder.h:23
cppgc::internal::MetricRecorder::GCCycle::memory
Sizes memory
Definition
metric-recorder.h:45
cppgc::internal::MetricRecorder::GCCycle::main_thread_atomic
Phases main_thread_atomic
Definition
metric-recorder.h:42
cppgc::internal::MetricRecorder::GCCycle::collection_rate_in_percent
double collection_rate_in_percent
Definition
metric-recorder.h:46
cppgc::internal::MetricRecorder::GCCycle::Type
Type
Definition
metric-recorder.h:24
cppgc::internal::MetricRecorder::GCCycle::Type::kMinor
@ kMinor
cppgc::internal::MetricRecorder::GCCycle::Type::kMajor
@ kMajor
cppgc::internal::MetricRecorder::GCCycle::efficiency_in_bytes_per_us
double efficiency_in_bytes_per_us
Definition
metric-recorder.h:47
cppgc::internal::MetricRecorder::GCCycle::main_thread_incremental
IncrementalPhases main_thread_incremental
Definition
metric-recorder.h:43
cppgc::internal::MetricRecorder::GCCycle::main_thread_efficiency_in_bytes_per_us
double main_thread_efficiency_in_bytes_per_us
Definition
metric-recorder.h:48
cppgc::internal::MetricRecorder::GCCycle::objects
Sizes objects
Definition
metric-recorder.h:44
cppgc::internal::MetricRecorder::GCCycle::main_thread
Phases main_thread
Definition
metric-recorder.h:41
cppgc::internal::MetricRecorder::GCCycle::total
Phases total
Definition
metric-recorder.h:40
cppgc::internal::MetricRecorder::MainThreadIncrementalMark
Definition
metric-recorder.h:51
cppgc::internal::MetricRecorder::MainThreadIncrementalMark::duration_us
int64_t duration_us
Definition
metric-recorder.h:52
cppgc::internal::MetricRecorder::MainThreadIncrementalSweep
Definition
metric-recorder.h:55
cppgc::internal::MetricRecorder::MainThreadIncrementalSweep::duration_us
int64_t duration_us
Definition
metric-recorder.h:56
src
heap
cppgc
metric-recorder.h
Generated on Sun Apr 6 2025 21:08:54 for v8 by
1.12.0