🎉
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 も多いんですがミニマムだとこんな感じで調べることもできますねー。
Discussion