large commit. refactoring, fio code totally reworker, huge improvenent in test time and results, etc
diff --git a/scripts/data2.py b/scripts/data2.py
index 08dbc77..4a8dad9 100644
--- a/scripts/data2.py
+++ b/scripts/data2.py
@@ -1,6 +1,6 @@
import sys
-import math
-import itertools
+from data_stat import med_dev, round_deviation, groupby_globally
+from data_stat import read_data_agent_result
def key(x):
@@ -10,36 +10,6 @@
x['__meta__']['concurence'])
-def med_dev(vals):
- med = sum(vals) / len(vals)
- dev = ((sum(abs(med - i) ** 2 for i in vals) / len(vals)) ** 0.5)
- return int(med), int(dev)
-
-
-def round_deviation(med_dev):
- med, dev = med_dev
-
- if dev < 1E-7:
- return med_dev
-
- dev_div = 10.0 ** (math.floor(math.log10(dev)) - 1)
- dev = int(dev / dev_div) * dev_div
- med = int(med / dev_div) * dev_div
- return (type(med_dev[0])(med),
- type(med_dev[1])(dev))
-
-
-def groupby_globally(data, key_func):
- grouped = {}
- grouped_iter = itertools.groupby(data, key_func)
-
- for (bs, cache_tp, act, conc), curr_data_it in grouped_iter:
- key = (bs, cache_tp, act, conc)
- grouped.setdefault(key, []).extend(curr_data_it)
-
- return grouped
-
-
template = "{bs:>4} {action:>12} {cache_tp:>3} {conc:>4}"
template += " | {iops[0]:>6} ~ {iops[1]:>5} | {bw[0]:>7} ~ {bw[1]:>6}"
template += " | {lat[0]:>6} ~ {lat[1]:>5} |"
@@ -54,21 +24,7 @@
def main(argv):
- data = []
-
- with open(argv[1]) as fc:
- block = None
- for line in fc:
- if line.startswith("{'__meta__':"):
- block = line
- elif block is not None:
- block += line
-
- if block is not None:
- if block.count('}') == block.count('{'):
- data.append(eval(block))
- block = None
-
+ data = read_data_agent_result(sys.argv[1])
grouped = groupby_globally(data, key)
print template.format(**headers)