Skip to content

Commit 1ba8909

Browse files
authored
Refactor perf script to separate load from exec (#44)
1 parent 79c3129 commit 1ba8909

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

Tools/scripts/lazy_marshal_perf.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,18 @@ def speed_comparison(source: str, test_name: str):
1717
print()
1818
print(f"Starting speed test: {test_name}")
1919

20-
def helper(data, label, lazy):
21-
timings = {}
22-
t0 = time.perf_counter()
20+
def load_helper(data, label, timings, lazy):
2321
codes = []
22+
t0 = time.perf_counter()
2423
for _ in range(1000):
2524
code = marshal.loads(data, lazy=lazy)
2625
codes.append(code)
2726
t1 = time.perf_counter()
2827
print(f"{label} load: {t1-t0:.3f}")
2928
timings["load"] = t1 - t0
29+
return codes
30+
31+
def exec_helper(codes, label, timings):
3032
timings["execs"] = []
3133
for i in range(4):
3234
t3 = time.perf_counter()
@@ -35,14 +37,27 @@ def helper(data, label, lazy):
3537
t4 = time.perf_counter()
3638
print(f"{label} exec #{i+1}: {t4-t3:.3f}")
3739
timings["execs"].append(t4 - t3)
40+
41+
def helper(data, label, timings, lazy):
42+
t0 = time.perf_counter()
43+
codes = load_helper(data, label, timings, lazy)
44+
exec_helper(codes, label, timings)
45+
t4 = time.perf_counter()
3846
print(f" {label} total: {t4-t0:.3f}")
3947
return timings
4048

4149
code = compile(source, "<old>", "exec")
4250
data = marshal.dumps(code)
43-
classic_timings = helper(data, "Classic", lazy=False)
4451

45-
new_timings = helper(data, "Lazy", lazy=True)
52+
# new_timings = helper(data, "Lazy", new_timings, lazy=True)
53+
# classic_timings = helper(data, "Classic", classic_timings, lazy=False)
54+
55+
new_timings = {}
56+
classic_timings = {}
57+
classic_codes = load_helper(data, "Classic", classic_timings, lazy=False)
58+
lazy_codes = load_helper(data, "Lazy", new_timings, lazy=True)
59+
exec_helper(classic_codes, "Classic", classic_timings)
60+
exec_helper(lazy_codes, "Lazy", new_timings)
4661

4762
if classic_timings and new_timings:
4863

0 commit comments

Comments
 (0)