Fix spelling of stats_reliable field - #117
Conversation
The 5.3 backend computes it as minor - promoted + major, the total words allocated anywhere. That needs EV_C_MAJOR_ALLOCATED_WORDS, which only exists from 5.3, so this backend was reporting minor - promoted instead (the words that died in the minor heap), a different quantity under the same name.
It printed minor - promoted alongside minor - promoted + major under the same label. The first is derivable from Minor heap and Promoted words, which are both printed, and only the second is the total.
The JSON reports it as null since it cannot be computed without the major counter, so printing minor - promoted in the text output contradicted it.
They printed under the same heading despite measuring different things: one is the wall/GC time breakdown per domain, the other the allocation totals per domain.
| @@ -99,25 +100,27 @@ let print_percentiles json output hist outliers = | |||
| "max_latency": %f | |||
| }, | |||
| "allocations": { | |||
There was a problem hiding this comment.
As far as I understand:
minor_heap should be all the words allocated directly in the minor heap. Similarly, major_heap should represent all the words allocated directly in the major heap. promoted_words represents the words promoted from the minor to the major heap. Now the question is whether each promoted word implies an allocation to the major heap as well. If so, the total number of (on-heap) allocations is major_heap + minor_heap + promoted_words. Otherwise, it's simply minor_heap + major_heap.
There was a problem hiding this comment.
And I think their values should not be %.0f.
| GC allocations (in words): | ||
| Total heap: 296241054 | ||
| Minor heap: 301205191 | ||
| Major heap: 46112581 |
There was a problem hiding this comment.
Major heapis
every word that reached the major heap whether by promotion or by direct
allocation, andTotal heapis the two combined with the promoted words counted
once.
This looks odd as well. If `Major heap includes every word that is promoted, how come its value is lower than the promoted words?
We consistently use snake_case elsewhere in this project See https://github.com/tarides/runtime_events_tools/blob/main/lib/olly_gc_stats/olly_gc_stats.5.3.ml#L188