in benchmarking/run_remote.py [0:0]
def _mobilelabResult(self, output):
# always get the last result
for item in output:
raw_result = item["result"]
if raw_result is None:
continue
result = json.loads(raw_result)
mobilelab_result = {"treatment": {}, "control": {}}
for k in result:
# k is identifier
v = result[k]
for kk in v:
vv = v[kk]
# update values if only summary exists
if "values" not in vv or len(vv["values"]) == 0:
if "summary" in vv:
if "mean" in vv["summary"]:
vv["values"] = [vv["summary"]["mean"]]
elif "p50" in vv["summary"]:
vv["values"] = [vv["summary"]["p50"]]
if "control_summary" in vv:
if "mean" in vv["control_summary"]:
vv["control_values"] = [vv["control_summary"]["mean"]]
elif "p50" in vv["control_summary"]:
vv["control_values"] = [vv["control_summary"]["p50"]]
# check values again
if "values" not in vv or len(vv["values"]) == 0:
continue
assert vv["type"], "type is missing in {}".format(kk)
assert vv["metric"], "metric is missing in {}".format(kk)
if vv["metric"] == "flops":
continue
unit = vv["unit"] if "unit" in vv else "null"
self._mobilelabAddField(
mobilelab_result["treatment"],
k,
vv["type"],
vv["metric"],
vv["values"],
unit,
)
if "control_values" in vv:
self._mobilelabAddField(
mobilelab_result["control"],
k,
vv["type"],
vv["metric"],
vv["control_values"],
unit,
)
item["mobilelab_result"] = mobilelab_result