MCPcopy Create free account
hub / github.com/nodejs/node / Category

Class Category

deps/v8/tools/eval_gc_nvp.py:80–141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78
79
80class Category:
81 def __init__(self, key, histogram, csv, percentiles):
82 self.key = key
83 self.values = []
84 self.histogram = histogram
85 self.csv = csv
86 self.percentiles = percentiles
87
88 def process_entry(self, entry):
89 if self.key in entry:
90 self.values.append(float(entry[self.key]))
91 if self.histogram:
92 self.histogram.add(float(entry[self.key]))
93
94 def min(self):
95 return min(self.values)
96
97 def max(self):
98 return max(self.values)
99
100 def avg(self):
101 if len(self.values) == 0:
102 return 0.0
103 return sum(self.values) / len(self.values)
104
105 def empty(self):
106 return len(self.values) == 0
107
108 def _compute_percentiles(self):
109 ret = []
110 if len(self.values) == 0:
111 return ret
112 sorted_values = sorted(self.values)
113 for percentile in self.percentiles:
114 index = int(ceil((len(self.values) - 1) * percentile / 100))
115 ret.append(" {0}%: {1}".format(percentile, sorted_values[index]))
116 return ret
117
118 def __str__(self):
119 if self.csv:
120 ret = [self.key]
121 ret.append(len(self.values))
122 ret.append(self.min())
123 ret.append(self.max())
124 ret.append(self.avg())
125 ret = [str(x) for x in ret]
126 return ",".join(ret)
127 else:
128 ret = [self.key]
129 ret.append(" len: {0}".format(len(self.values)))
130 if len(self.values) > 0:
131 ret.append(" min: {0}".format(self.min()))
132 ret.append(" max: {0}".format(self.max()))
133 ret.append(" avg: {0}".format(self.avg()))
134 if self.histogram:
135 ret.append(str(self.histogram))
136 if self.percentiles:
137 ret.append("\n".join(self._compute_percentiles()))

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected