Repository navigation
Show GC results for every ruby when comparing builds - #541
Open
eightbitraptor wants to merge 1 commit into
Open
eightbitraptor wants to merge 1 commit into
eightbitraptor wants to merge 1 commit into
Conversation
With three or more rubies, the GC summary only had one row per comparison (base → other), so no ruby had its own row and the baseline appeared only on the left of each arrow. A new "GC per ruby" table now prints before the GC summary. It has one row per ruby per benchmark, with the same absolute columns as the single-ruby table. The table is left out when only one ruby runs, because the single-ruby report already shows those values. A benchmark is left out only when no ruby has GC activity. The legend and GC metric notes now say which table each sentence describes, and they describe each table's own skip rule. The Ractor GC ms/worker note now appears whenever a table shows that column. harness-gc also printed 0 live and free slots in the heap utilisation table on Ruby 3.4, because GC.stat_heap before 4.0 has no heap_live_slots or heap_free_slots. After the full GC, the harness now derives them from the per-heap total_allocated_objects and total_freed_objects counters.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With three or more rubies, the GC summary only had one row per comparison so no ruby had its own row and the baseline appeared only on the left of each arrow. This got a little confusing because there was no way of directly comparing the numbers for each run other than the ratios of each measure compared to the "base" Ruby, ie. the first one passed to the run_benchmark script.
This PR introduces a new "GC per ruby" table before the GC summary. It has one row per ruby per benchmark, with the same absolute columns as the single-ruby table. The table is left out when only one ruby runs, because the single-ruby report already shows those values.
This will make it easier to directly compare raw GC numbers between multiple rubies, especially when you're testing against 3+ Ruby versions.