summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2025-12-13 15:13:02 +0700
committerGitHub <[email protected]>2025-12-13 15:13:02 +0700
commit20b03bbc081353295f7a491038bd3efbc9c3a75a (patch)
treebac74e0c68d9582c4afdb4a25784a10388395597 /tools
parent3a4d02ba9f150b74df08384d16fac124a7c27485 (diff)
upload metrics.json and metrics compare to release page (#3409)
* upload metrics.json and metrics compare to release page * Adjust workflow comment handling for forks
Diffstat (limited to 'tools')
-rw-r--r--tools/metrics.py24
1 files changed, 8 insertions, 16 deletions
diff --git a/tools/metrics.py b/tools/metrics.py
index 50709d5ba..6b992c8f5 100644
--- a/tools/metrics.py
+++ b/tools/metrics.py
@@ -74,7 +74,6 @@ def parse_bloaty_csv(csv_text, filters=None):
"file": os.path.basename(unit_path) or unit_path,
"path": unit_path,
"size": total_size,
- "total": total_size,
"symbols": symbols,
"sections": sections,
}
@@ -146,7 +145,7 @@ def compute_avg(all_json_data):
return None
# Merge files with the same 'file' value and compute averages
- file_accumulator = {} # key: file name, value: {"sizes": [sizes], "totals": [totals], "symbols": {name: [sizes]}, "sections": {name: [sizes]}}
+ file_accumulator = {} # key: file name, value: {"sizes": [sizes], "symbols": {name: [sizes]}, "sections": {name: [sizes]}}
for json_data in all_json_data["data"]:
for f in json_data.get("files", []):
@@ -154,14 +153,12 @@ def compute_avg(all_json_data):
if fname not in file_accumulator:
file_accumulator[fname] = {
"sizes": [],
- "totals": [],
"path": f.get("path"),
"symbols": defaultdict(list),
"sections": defaultdict(list),
}
- size_val = f.get("size", f.get("total", 0))
+ size_val = f.get("size", 0)
file_accumulator[fname]["sizes"].append(size_val)
- file_accumulator[fname]["totals"].append(f.get("total", size_val))
for sym in f.get("symbols", []):
name = sym.get("name")
if name is None:
@@ -196,9 +193,7 @@ def compute_avg(all_json_data):
}
)
- totals_list = [d.get("TOTAL") for d in all_json_data["data"] if isinstance(d.get("TOTAL"), (int, float))]
- total_size = round(sum(totals_list) / len(totals_list)) if totals_list else (
- sum(f["size"] for f in files_average) or 1)
+ total_size = sum(f["size"] for f in files_average) or 1
for f in files_average:
f["percent"] = (f["size"] / total_size) * 100 if total_size else 0
@@ -207,7 +202,6 @@ def compute_avg(all_json_data):
json_average = {
"file_list": all_json_data["file_list"],
- "TOTAL": total_size,
"files": files_average,
}
@@ -262,10 +256,12 @@ def compare_files(base_file, new_file, filters=None):
},
})
+ base_total = sum(f["size"] for f in base_avg["files"])
+ new_total = sum(f["size"] for f in new_avg["files"])
total = {
- "base": base_avg.get("TOTAL", 0),
- "new": new_avg.get("TOTAL", 0),
- "diff": new_avg.get("TOTAL", 0) - base_avg.get("TOTAL", 0),
+ "base": base_total,
+ "new": new_total,
+ "diff": new_total - base_total,
}
return {
@@ -287,10 +283,6 @@ def get_sort_key(sort_order):
"""
def _size_val(entry):
- if isinstance(entry.get('total'), int):
- return entry.get('total', 0)
- if isinstance(entry.get('total'), dict):
- return entry['total'].get('new', 0)
return entry.get('size', 0)
if sort_order == 'size-':