@@ -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