V(MetricHeapOldUsed, HeapOldUsed,
"heap.old.used", kByte) \
V(MetricHeapOldCapacity, HeapOldCapacity, "heap.old.capacity", kByte) \
V(MetricHeapOldExternal, HeapOldExternal, "heap.old.external", kByte) \
V(MetricHeapNewUsed, HeapNewUsed, "heap.new.used", kByte) \
V(MetricHeapNewCapacity, HeapNewCapacity, "heap.new.capacity", kByte) \
V(MetricHeapNewExternal, HeapNewExternal, "heap.new.external", kByte)
52 {
53 public:
55 kCounter,
57 kMicrosecond,
58 };
59
60 Metric();
61
62#if !defined(PRODUCT)
65#endif
66
67
68 void InitInstance(Isolate* isolate,
70 const char* description,
71 Unit unit);
72
73
74 void InitInstance(IsolateGroup* isolate_group,
76 const char* description,
77 Unit unit);
78
79
80 void InitInstance(
const char*
name,
const char* description, Unit unit);
81
82 virtual ~Metric();
83
84#ifndef PRODUCT
85 void PrintJSON(JSONStream* stream);
86#endif
87
88
89 static char* ValueToString(int64_t value, Unit unit);
90
91
93
94 int64_t
value()
const {
return value_; }
96
97 void increment() { value_++; }
98
99 const char*
name()
const {
return name_; }
100 const char* description() const { return description_; }
101 Unit unit()
const {
return unit_; }
102
103
104 Isolate* isolate() const { return isolate_; }
105
106
107 IsolateGroup* isolate_group() const { return isolate_group_; }
108
109 static Metric* vm_head() { return vm_list_head_; }
110
111
112
113 virtual int64_t
Value()
const {
return value(); }
114
115 private:
116 Isolate* isolate_ = nullptr;
117 IsolateGroup* isolate_group_ = nullptr;
118 const char* name_ = nullptr;
119 const char* description_ = nullptr;
121 int64_t value_;
122
123 static Metric* vm_list_head_;
125};
126
127
128
129class MaxMetric : public Metric {
130 public:
131 MaxMetric();
132
133 void SetValue(int64_t new_value);
134};
135
136
137
138class MinMetric : public Metric {
139 public:
140 MinMetric();
141
142 void SetValue(int64_t new_value);
143};
144
145class MetricHeapOldUsed : public Metric {
146 public:
147 virtual int64_t
Value()
const;
148};
149
150class MetricHeapOldCapacity : public Metric {
151 public:
152 virtual int64_t
Value()
const;
153};
154
155class MetricHeapOldExternal : public Metric {
156 public:
157 virtual int64_t
Value()
const;
158};
159
160class MetricHeapNewUsed : public Metric {
161 public:
162 virtual int64_t
Value()
const;
163};
164
165class MetricHeapNewCapacity : public Metric {
166 public:
167 virtual int64_t
Value()
const;
168};
169
170class MetricHeapNewExternal : public Metric {
171 public:
172 virtual int64_t
Value()
const;
173};
174
175#if !defined(PRODUCT)
176class MetricIsolateCount : public Metric {
177 public:
178 virtual int64_t
Value()
const;
179};
180
181class MetricCurrentRSS : public Metric {
182 public:
183 virtual int64_t
Value()
const;
184};
185
186class MetricPeakRSS : public Metric {
187 public:
188 virtual int64_t
Value()
const;
189};
190#endif
191
192class MetricHeapUsed : public Metric {
193 public:
194 virtual int64_t
Value()
const;
195};
196
197}
198
199#endif
static void set_value(FlSettingsPortal *portal, const FlSetting *setting, GVariant *value)
Unit(benchmark::kNanosecond)
const char * ToString(ax::mojom::Event event)