Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Side by Side Diff: runtime/vm/metrics.h

Issue 1391473002: Add Metrics for heap high water marks (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/heap.cc ('k') | runtime/vm/metrics.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_METRICS_H_ 5 #ifndef VM_METRICS_H_
6 #define VM_METRICS_H_ 6 #define VM_METRICS_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 9
10 namespace dart { 10 namespace dart {
11 11
12 class Isolate; 12 class Isolate;
13 class JSONStream; 13 class JSONStream;
14 14
15 // Metrics for each isolate. 15 // Metrics for each isolate.
16 #define ISOLATE_METRIC_LIST(V) \ 16 #define ISOLATE_METRIC_LIST(V) \
17 V(MetricHeapOldUsed, HeapOldUsed, "heap.old.used", kByte) \ 17 V(MetricHeapOldUsed, HeapOldUsed, "heap.old.used", kByte) \
18 V(MetricHeapOldCapacity, HeapOldCapacity, "heap.old.capacity", kByte) \ 18 V(MetricHeapOldCapacity, HeapOldCapacity, "heap.old.capacity", kByte) \
19 V(MaxMetric, HeapOldCapacityMax, "heap.old.capacity.max", kByte) \
19 V(MetricHeapOldExternal, HeapOldExternal, "heap.old.external", kByte) \ 20 V(MetricHeapOldExternal, HeapOldExternal, "heap.old.external", kByte) \
20 V(MetricHeapNewUsed, HeapNewUsed, "heap.new.used", kByte) \ 21 V(MetricHeapNewUsed, HeapNewUsed, "heap.new.used", kByte) \
21 V(MetricHeapNewCapacity, HeapNewCapacity, "heap.new.capacity", kByte) \ 22 V(MetricHeapNewCapacity, HeapNewCapacity, "heap.new.capacity", kByte) \
22 V(MetricHeapNewExternal, HeapNewExternal, "heap.new.external", kByte) \ 23 V(MaxMetric, HeapNewCapacityMax, "heap.new.capacity.max", kByte) \
24 V(MetricHeapNewExternal, HeapNewExternal, "heap.new.external", kByte)
23 25
24 #define VM_METRIC_LIST(V) \ 26 #define VM_METRIC_LIST(V) \
25 V(MetricIsolateCount, IsolateCount, "vm.isolate.count", kCounter) \ 27 V(MetricIsolateCount, IsolateCount, "vm.isolate.count", kCounter)
26 28
27 class Metric { 29 class Metric {
28 public: 30 public:
29 enum Unit { 31 enum Unit {
30 kCounter, 32 kCounter,
31 kByte, 33 kByte,
32 }; 34 };
33 35
34 Metric(); 36 Metric();
35 37
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 void RegisterWithIsolate(); 97 void RegisterWithIsolate();
96 void DeregisterWithIsolate(); 98 void DeregisterWithIsolate();
97 void RegisterWithVM(); 99 void RegisterWithVM();
98 void DeregisterWithVM(); 100 void DeregisterWithVM();
99 101
100 static Metric* vm_list_head_; 102 static Metric* vm_list_head_;
101 DISALLOW_COPY_AND_ASSIGN(Metric); 103 DISALLOW_COPY_AND_ASSIGN(Metric);
102 }; 104 };
103 105
104 106
107 // A Metric class that reports the maximum value observed.
108 // Initial maximum is kMinInt64.
109 class MaxMetric : public Metric {
110 public:
111 MaxMetric();
112
113 void SetValue(int64_t new_value);
114 };
115
116
117 // A Metric class that reports the minimum value observed.
118 // Initial minimum is kMaxInt64.
119 class MinMetric : public Metric {
120 public:
121 MinMetric();
122
123 void SetValue(int64_t new_value);
124 };
125
126
105 class MetricHeapOldUsed : public Metric { 127 class MetricHeapOldUsed : public Metric {
106 protected: 128 protected:
107 virtual int64_t Value() const; 129 virtual int64_t Value() const;
108 }; 130 };
109 131
110 132
111 class MetricHeapOldCapacity : public Metric { 133 class MetricHeapOldCapacity : public Metric {
112 protected: 134 protected:
113 virtual int64_t Value() const; 135 virtual int64_t Value() const;
114 }; 136 };
(...skipping 25 matching lines...) Expand all
140 162
141 class MetricIsolateCount : public Metric { 163 class MetricIsolateCount : public Metric {
142 protected: 164 protected:
143 virtual int64_t Value() const; 165 virtual int64_t Value() const;
144 }; 166 };
145 167
146 168
147 } // namespace dart 169 } // namespace dart
148 170
149 #endif // VM_METRICS_H_ 171 #endif // VM_METRICS_H_
OLDNEW
« no previous file with comments | « runtime/vm/heap.cc ('k') | runtime/vm/metrics.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698