🎉

Ruby でメモリの消費量を調べる

に公開

Ruby でメモリの消費量を調べるには ObjectSpace.memsize_of_all が利用できます。

require "objspace"

# すべてのオブジェクトのメモリの使用量を返す
pp ObjectSpace.memsize_of_all
# => 2195902

a = "hoge" * 1_000_000

pp ObjectSpace.memsize_of_all
# => 6476772

もう少し工夫して調査したいのであれば以下のようなヘルパメソッドを定義しておくとよいでしょう。

require "objspace"

# バイトサイズの値をわかりやすく表示する場合は ActiveSupport の Numeric#to_fs を使うと便利
require "active_support/all"

def memsize_of
  GC.start

  ObjectSpace.memsize_of_all.tap {
    yield
    puts "#{(ObjectSpace.memsize_of_all - _1).to_fs(:human_size)}"
  }
end

memsize_of {
  # このブロック内のメモリの消費量を調べる
  a = "hoge" * 1_000_000
}

メモリの使用量を調べるための便利gem も多いんですがミニマムだとこんな感じで調べることもできますねー。

GitHubで編集を提案

Discussion