👌
[Feature #21042] メモリ割当のカウンタを返す `Thread#memory_allocations` を追加する提案
[Feature #21042] Add and expose Thread#memory_allocations memory allocation counters
- メモリ割当のカウンタを返す
Thread#memory_allocationsを追加する提案 -
Thread#memory_allocationsでは以下のような情報が取得できる- 実装: https://github.com/ruby/ruby/pull/3978
- PR 自体は5年前からあったんですね
Thread.current.memory_allocations
# => {
# total_allocated_objects: 1000,
# total_malloc_bytes: 1_000_000,
# total_mallocs: 100
# }
- この実装はもともとはメモリ割当の推移を追跡するために Ruby にパッチを当てて GitLab で運用されていた
- が、メンテナンスに疲れたので本体に組み込みたい、というのがモチベーションみたい
- matz 的には導入にはポジティブみたいですが API が実装依存になったり、導入することへのオーバーヘッドが課題となっているみたいですね
- JVM だと既に
Thread.current[:total_malloc_bytes]相当のThreadMXBean#getThreadAllocatedBytesというものが存在しているみたい - 逆にいうと
total_malloc_bytes以外は実装できないみたいですね - https://bugs.ruby-lang.org/issues/21042#note-3
Discussion