Project

General

Profile

Actions

Feature #18364

closed

Add GC.stat_pool for Variable Width Allocation

Added by peterzhu2118 (Peter Zhu) over 2 years ago. Updated over 2 years ago.

Status:
Closed
Target version:
-
[ruby-core:106279]

Description

GitHub PR: https://github.com/ruby/ruby/pull/5177

We're proposing an API to get statistics for size pools for Variable Width Allocation similar to GC.stat. This will make it easier for us (and other developers) to tune VWA.

Before 3.1 release, we plan to keep this method hidden from the documentation using :nodoc: since it is not useful when not using VWA.

For example:

# Get stats for size pool 2
puts GC.stat_pool(2)
#=> {:slot_size=>160, :heap_allocatable_pages=>80, :heap_eden_pages=>14, :heap_eden_slots=>1424, :heap_tomb_pages=>0, :heap_tomb_slots=>0}
puts GC.stat_pool(2, :heap_eden_pages)
#=> 14

We aim to keep the keys in the outputted hash the same as the keys used in GC.stat.

We chose to implement a new method instead of re-using an existing API (GC.stat) because the keys returned by GC.stat_pool will not be the same as GC.stat. We believe that having GC.stat return different shapes of hashes based on its arguments is confusing.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0