@@ -131,8 +131,9 @@ def plot_strace_vs_trace_v3_scatter(results, output_dir):
131131
132132 # Add labels for each point
133133 for test , strace , trace_v3 in zip (tests , strace_times , trace_v3_times ):
134+ speedup = strace / trace_v3
134135 ax .annotate (
135- test ,
136+ f" { test } ( { speedup :.1f } x)" ,
136137 (strace , trace_v3 ),
137138 xytext = (5 , 5 ),
138139 textcoords = "offset points" ,
@@ -155,6 +156,40 @@ def plot_strace_vs_trace_v3_scatter(results, output_dir):
155156 alpha = 0.7 ,
156157 )
157158
159+ # Add logarithmic speedup lines
160+ max_speedup = max (s / t for s , t in zip (strace_times , trace_v3_times ))
161+
162+ speedup_levels = []
163+ base = 1
164+ while base <= max (10 , max_speedup * 2 ):
165+ speedup_levels .extend ([base * 2 , base * 5 , base * 10 ])
166+ base *= 10
167+
168+ for speedup in speedup_levels :
169+ if speedup > max (10 , max_speedup * 2 ):
170+ break
171+ ax .plot (
172+ [min_val , max_val ],
173+ [min_val / speedup , max_val / speedup ],
174+ "--" ,
175+ linewidth = 1 ,
176+ color = "gray" ,
177+ alpha = 0.6 ,
178+ label = f"{ speedup } x speedup" ,
179+ )
180+ ax .text (
181+ max_val ,
182+ max_val / speedup ,
183+ f"{ speedup } x" ,
184+ fontsize = 9 ,
185+ color = "gray" ,
186+ va = "bottom" ,
187+ ha = "right" ,
188+ )
189+
190+ ax .set_xlim ([min_val , max_val ])
191+ ax .set_ylim ([min_val , max_val ])
192+
158193 # Shade regions
159194 ax .fill_between (
160195 [min_val , max_val ],
0 commit comments