Print comprehensive benchmark results
(results)
| 248 | |
| 249 | |
| 250 | def print_benchmark_results(results): |
| 251 | """Print comprehensive benchmark results""" |
| 252 | colors = get_colors(can_colorize()) |
| 253 | |
| 254 | print(f"\n{colors.BOLD_GREEN}{'='*60}{colors.RESET}") |
| 255 | print(f"{colors.BOLD_GREEN}get_stack_trace() Benchmark Results{colors.RESET}") |
| 256 | print(f"{colors.BOLD_GREEN}{'='*60}{colors.RESET}") |
| 257 | |
| 258 | # Basic statistics |
| 259 | print(f"\n{colors.BOLD_CYAN}Basic Statistics:{colors.RESET}") |
| 260 | print( |
| 261 | f" {colors.CYAN}Wall time:{colors.RESET} {colors.YELLOW}{results['wall_time']:.3f}{colors.RESET} seconds" |
| 262 | ) |
| 263 | print( |
| 264 | f" {colors.CYAN}Total attempts:{colors.RESET} {colors.MAGENTA}{results['total_attempts']:,}{colors.RESET}" |
| 265 | ) |
| 266 | print( |
| 267 | f" {colors.CYAN}Successful samples:{colors.RESET} {colors.GREEN}{results['sample_count']:,}{colors.RESET}" |
| 268 | ) |
| 269 | print( |
| 270 | f" {colors.CYAN}Failed samples:{colors.RESET} {colors.RED}{results['fail_count']:,}{colors.RESET}" |
| 271 | ) |
| 272 | |
| 273 | # Color code the success rate |
| 274 | success_rate = results["success_rate"] |
| 275 | if success_rate >= 95: |
| 276 | success_color = colors.BOLD_GREEN |
| 277 | elif success_rate >= 80: |
| 278 | success_color = colors.BOLD_YELLOW |
| 279 | else: |
| 280 | success_color = colors.BOLD_RED |
| 281 | |
| 282 | print( |
| 283 | f" {colors.CYAN}Success rate:{colors.RESET} {success_color}{success_rate:.2f}%{colors.RESET}" |
| 284 | ) |
| 285 | |
| 286 | # Performance metrics |
| 287 | print(f"\n{colors.BOLD_CYAN}Performance Metrics:{colors.RESET}") |
| 288 | print( |
| 289 | f" {colors.CYAN}Average call time:{colors.RESET} {colors.YELLOW}{results['avg_work_time_us']:.2f}{colors.RESET} µs" |
| 290 | ) |
| 291 | print( |
| 292 | f" {colors.CYAN}Work rate:{colors.RESET} {colors.MAGENTA}{results['work_rate_hz']:.1f}{colors.RESET} calls/sec" |
| 293 | ) |
| 294 | print( |
| 295 | f" {colors.CYAN}Sample rate:{colors.RESET} {colors.MAGENTA}{results['samples_per_sec']:.1f}{colors.RESET} samples/sec" |
| 296 | ) |
| 297 | print( |
| 298 | f" {colors.CYAN}Total work time:{colors.RESET} {colors.YELLOW}{results['total_work_time']:.3f}{colors.RESET} seconds" |
| 299 | ) |
| 300 | |
| 301 | # Color code work efficiency |
| 302 | efficiency = (results["total_work_time"] / results["wall_time"]) * 100 |
| 303 | if efficiency >= 80: |
| 304 | efficiency_color = colors.GREEN |
| 305 | elif efficiency >= 50: |
| 306 | efficiency_color = colors.YELLOW |
| 307 | else: |
no test coverage detected
searching dependent graphs…