McRogueFace/tests
John McCardle a7fef2aeb6 feat: Add benchmark logging system for performance analysis (closes #104)
Add Python API for capturing performance data to JSON files:
- mcrfpy.start_benchmark() - start capturing frame data
- mcrfpy.end_benchmark() - stop and return filename
- mcrfpy.log_benchmark(msg) - add log message to current frame

The benchmark system captures per-frame data including:
- Frame timing (frame_time_ms, fps, timestamp)
- Detailed timing breakdown (grid_render, entity_render, python, animation, fov)
- Draw call and element counts
- User log messages attached to frames

Output JSON format supports analysis tools and includes:
- Benchmark metadata (PID, timestamps, duration, total frames)
- Full frame-by-frame metrics array

Also refactors ProfilingMetrics from nested GameEngine struct to
top-level struct for easier forward declaration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 16:05:55 -05:00
..
benchmarks feat: Add dirty flag propagation to all UIDrawables and expand metrics API (#144, #104) 2025-11-28 15:44:09 -05:00
demo fix: Resolve --exec double script execution bug 2025-11-26 13:20:22 -05:00
geometry_demo fix: Refine geometry demos for 1024x768 and fix animations 2025-11-26 04:54:13 -05:00
integration Squashed commit of the following: [alpha_presentable] 2025-07-15 21:30:49 -04:00
notes feat: Exit on first Python callback exception (closes #133) 2025-11-26 10:26:30 -05:00
regression refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00
unit feat: Add benchmark logging system for performance analysis (closes #104) 2025-11-28 16:05:55 -05:00
run_tests.py refactor: comprehensive test suite overhaul and demo system 2025-11-25 23:37:05 -05:00