Skip to content

Conversation

@steveklabnik
Copy link
Collaborator

Enhance benchmarking infrastructure with four new tracking capabilities:

  1. Per-program timeline charts: Each benchmark shown as a separate line in the timeline view to identify which programs regress

  2. Memory usage tracking: Report peak memory (RSS) via getrusage() on Linux/macOS during compilation

  3. Throughput metrics: Calculate and display lines/sec and tokens/sec based on source metrics (bytes, lines, token count)

  4. Binary size tracking: Capture output binary size for each benchmark

Implementation details:

  • Add SourceMetrics struct to timing.rs with bytes/lines/tokens
  • Add get_peak_memory_bytes() using libc::getrusage()
  • Update bench.sh to capture binary size and pass through new metrics
  • Add generate_multi_timeline_chart() for per-program timeline SVG
  • Extend metadata.json with throughput calculations and all metrics
  • Add detailed metrics table to performance.html showing all data

🤖 Generated with Claude Code

@steveklabnik steveklabnik force-pushed the steveklabnik/push-yqlrumnkortw branch from e1d4800 to 089fea6 Compare December 28, 2025 13:52
Enhance benchmarking infrastructure with four new tracking capabilities:

1. Per-program timeline charts: Each benchmark shown as a separate line
   in the timeline view to identify which programs regress

2. Memory usage tracking: Report peak memory (RSS) via getrusage()
   on Linux/macOS during compilation

3. Throughput metrics: Calculate and display lines/sec and tokens/sec
   based on source metrics (bytes, lines, token count)

4. Binary size tracking: Capture output binary size for each benchmark

Implementation details:
- Add SourceMetrics struct to timing.rs with bytes/lines/tokens
- Add get_peak_memory_bytes() using libc::getrusage()
- Update bench.sh to capture binary size and pass through new metrics
- Add generate_multi_timeline_chart() for per-program timeline SVG
- Extend metadata.json with throughput calculations and all metrics
- Add detailed metrics table to performance.html showing all data

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

Co-Authored-By: Claude <[email protected]>
@steveklabnik steveklabnik force-pushed the steveklabnik/push-yqlrumnkortw branch from 089fea6 to 8ded845 Compare December 28, 2025 14:10
@steveklabnik steveklabnik added this pull request to the merge queue Dec 28, 2025
Merged via the queue into rue-language:trunk with commit 424b842 Dec 28, 2025
6 checks passed
@steveklabnik steveklabnik deleted the steveklabnik/push-yqlrumnkortw branch December 28, 2025 14:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant