👌

[Feature #21042] メモリ割当のカウンタを返す `Thread#memory_allocations` を追加する提案

に公開

[Feature #21042] Add and expose Thread#memory_allocations memory allocation counters

  • メモリ割当のカウンタを返す Thread#memory_allocations を追加する提案
  • Thread#memory_allocations では以下のような情報が取得できる
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
GitHubで編集を提案

Discussion