| Index: tools/eval_gc_nvp.py
|
| diff --git a/tools/eval_gc_nvp.py b/tools/eval_gc_nvp.py
|
| index f18a579391c2f95bdfb2bd2e03ef94b7953acc19..af131f182fc52f71b8b741c43bcba05d60b3bf06 100755
|
| --- a/tools/eval_gc_nvp.py
|
| +++ b/tools/eval_gc_nvp.py
|
| @@ -74,10 +74,11 @@ class Histogram:
|
|
|
|
|
| class Category:
|
| - def __init__(self, key, histogram):
|
| + def __init__(self, key, histogram, csv):
|
| self.key = key
|
| self.values = []
|
| self.histogram = histogram
|
| + self.csv = csv
|
|
|
| def process_entry(self, entry):
|
| if self.key in entry:
|
| @@ -92,18 +93,29 @@ class Category:
|
| return max(self.values)
|
|
|
| def avg(self):
|
| + if len(self.values) == 0:
|
| + return 0.0
|
| return sum(self.values) / len(self.values)
|
|
|
| def __str__(self):
|
| - ret = [self.key]
|
| - ret.append(" len: {0}".format(len(self.values)))
|
| - if len(self.values) > 0:
|
| - ret.append(" min: {0}".format(min(self.values)))
|
| - ret.append(" max: {0}".format(max(self.values)))
|
| - ret.append(" avg: {0}".format(sum(self.values) / len(self.values)))
|
| - if self.histogram:
|
| - ret.append(str(self.histogram))
|
| - return "\n".join(ret)
|
| + if self.csv:
|
| + ret = [self.key]
|
| + ret.append(len(self.values))
|
| + ret.append(self.min())
|
| + ret.append(self.max())
|
| + ret.append(self.avg())
|
| + ret = [str(x) for x in ret]
|
| + return ",".join(ret)
|
| + else:
|
| + ret = [self.key]
|
| + ret.append(" len: {0}".format(len(self.values)))
|
| + if len(self.values) > 0:
|
| + ret.append(" min: {0}".format(self.min()))
|
| + ret.append(" max: {0}".format(self.max()))
|
| + ret.append(" avg: {0}".format(self.avg()))
|
| + if self.histogram:
|
| + ret.append(str(self.histogram))
|
| + return "\n".join(ret)
|
|
|
| def __repr__(self):
|
| return "<Category: {0}>".format(self.key)
|
| @@ -143,6 +155,8 @@ def main():
|
| type=str, nargs='?',
|
| default="no",
|
| help="rank keys by metric (default: no)")
|
| + parser.add_argument('--csv', dest='csv',
|
| + action='store_true', help='provide output as csv')
|
| args = parser.parse_args()
|
|
|
| histogram = None
|
| @@ -154,7 +168,7 @@ def main():
|
| bucket_trait = LinearBucket(args.linear_histogram_granularity)
|
| histogram = Histogram(bucket_trait, not args.histogram_omit_empty)
|
|
|
| - categories = [ Category(key, deepcopy(histogram))
|
| + categories = [ Category(key, deepcopy(histogram), args.csv)
|
| for key in args.keys ]
|
|
|
| while True:
|
|
|