aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Tools/scripts/summarize_stats.py
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2022-02-10 11:01:18 +0000
committerGitHub <noreply@github.com>2022-02-10 11:01:18 +0000
commitcfc1cecd7b6f0f27163b5bf519530284140cf5b2 (patch)
treed329cc4c0bc5d0e9d5e35a53662c71559d8ab35f /Tools/scripts/summarize_stats.py
parentdb052851a70fd95d047c6263fc16a75e4d47b3ed (diff)
downloadcpython-cfc1cecd7b6f0f27163b5bf519530284140cf5b2.tar.gz
cpython-cfc1cecd7b6f0f27163b5bf519530284140cf5b2.zip
Right justify numeric columns in stats summary script. (GH-31234)
Diffstat (limited to 'Tools/scripts/summarize_stats.py')
-rw-r--r--Tools/scripts/summarize_stats.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/Tools/scripts/summarize_stats.py b/Tools/scripts/summarize_stats.py
index da0bab2390f..6e0286f52a0 100644
--- a/Tools/scripts/summarize_stats.py
+++ b/Tools/scripts/summarize_stats.py
@@ -55,7 +55,7 @@ def print_specialization_stats(name, family_stats, defines):
label = label[0].upper() + label[1:]
val = family_stats.get(key, 0)
rows.append((label, val, f"{100*val/total_attempts:0.1f}%"))
- emit_table(("", "Count", "Ratio"), rows)
+ emit_table(("", "Count:", "Ratio:"), rows)
total_failures = family_stats.get("specialization.failure", 0)
failure_kinds = [ 0 ] * 30
for key in family_stats:
@@ -71,7 +71,7 @@ def print_specialization_stats(name, family_stats, defines):
if not value:
continue
rows.append((kind_to_text(index, defines, name), value, f"{100*value/total_failures:0.1f}%"))
- emit_table(("Failure kind", "Count", "Ratio"), rows)
+ emit_table(("Failure kind", "Count:", "Ratio:"), rows)
def gather_stats():
stats = collections.Counter()
@@ -174,8 +174,17 @@ class Section:
def emit_table(header, rows):
width = len(header)
- print("|", " | ".join(header), "|")
- print("|", " | ".join(["---"]*width), "|")
+ header_line = "|"
+ under_line = "|"
+ for item in header:
+ under = "---"
+ if item.endswith(":"):
+ item = item[:-1]
+ under += ":"
+ header_line += item + " | "
+ under_line += under + "|"
+ print(header_line)
+ print(under_line)
for row in rows:
if width is not None and len(row) != width:
raise ValueError("Wrong number of elements in row '" + str(rows) + "'")
@@ -204,7 +213,7 @@ def emit_execution_counts(opcode_stats, total):
rows.append((name, count, f"{100*count/total:0.1f}%",
f"{100*cumulative/total:0.1f}%", miss))
emit_table(
- ("Name", "Count", "Self", "Cumulative", "Miss ratio"),
+ ("Name", "Count:", "Self:", "Cumulative:", "Miss ratio:"),
rows
)
@@ -221,7 +230,7 @@ def emit_specialization_stats(opcode_stats):
def emit_specialization_overview(opcode_stats, total):
basic, not_specialized, specialized = categorized_counts(opcode_stats)
with Section("Specialization effectiveness"):
- emit_table(("Instructions", "Count", "Ratio"), (
+ emit_table(("Instructions", "Count:", "Ratio:"), (
("Basic", basic, f"{basic*100/total:0.1f}%"),
("Not specialized", not_specialized, f"{not_specialized*100/total:0.1f}%"),
("Specialized", specialized, f"{specialized*100/total:0.1f}%"),
@@ -240,7 +249,7 @@ def emit_call_stats(stats):
for key, value in stats.items():
if key.startswith("Frame"):
rows.append((key, value, f"{100*value/total:0.1f}%"))
- emit_table(("", "Count", "Ratio"), rows)
+ emit_table(("", "Count:", "Ratio:"), rows)
def emit_object_stats(stats):
with Section("Object stats", summary="allocations, frees and dict materializatons"):
@@ -255,7 +264,7 @@ def emit_object_stats(stats):
label = key[6:].strip()
label = label[0].upper() + label[1:]
rows.append((label, value, materialize))
- emit_table(("", "Count", "Ratio"), rows)
+ emit_table(("", "Count:", "Ratio:"), rows)
def main():
stats = gather_stats()