Skip to content

zjit_diff: compare iteration timings with GC time removed - #562

Draft
XrXr wants to merge 7 commits into
ruby:mainfrom
XrXr:zjit-diff-less-gc-time
Draft

XrXr wants to merge 7 commits into
ruby:mainfrom
XrXr:zjit-diff-less-gc-time

Conversation

@XrXr

@XrXr XrXr commented Oct 23, 2026

Copy link
Copy Markdown
Member

Benchmark iterations are supposed to do the same work, but GC work
throws a ranch into that. For changes like
ruby/ruby#18960 that don't modify the GC's
workload at all, it's useful to evaluate the GC time separately.

claude and others added 2 commits October 23, 2026 21:31
Benchmark iterations are supposed to do the same work, but GC work
throws a ranch into that. For changes like
ruby/ruby#18960 that don't modify the GC's
workload at all, it's useful to evaluate the GC time separately.
@XrXr
XrXr force-pushed the zjit-diff-less-gc-time branch from 67d77a3 to 211380e Compare October 24, 2026 01:59
XrXr added 3 commits November 3, 2026 15:35
Rubies that don't count side exits by default return nil from
RubyVM::ZJIT.stats(:side_exit_count) unless run with --zjit-stats.
Subtract the previous running total, not the previous iteration's
delta. Take the starting total before the first iteration so boot-time
side exits aren't counted against iteration 1.
side_exits_per_iteration called .size on nil for JSON recorded with a
harness-gc that doesn't track side exits. Return nil instead, and still
print the without-GC timings, just without side_exit_avg.
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.

2 participants