糟糕,Ruby中没有Hash#bytesize
。
我想知道是否有一种方法可以测量任何对象,哈希或数组的大小。
EDIT#2:评论评估
基准似乎并不能深入测量所有实例。
require "benchmark"
class Animal
def initialize
@first_name = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@last_name = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@arr = Array(Int32).new
end
end
struct Foobar
property hola
end
animal = Benchmark.memory do
Animal.new
end
puts "Animal used: #{animal}"
foobar = Benchmark.memory do
Foobar.new
end
puts "Foobar used: #{foobar}"
array = Benchmark.memory do
Array(Int32).new
end
puts "Array used: #{array}"
string = Benchmark.memory do
String.new() + "Hello"
end
puts "String used: #{string}"
输出:
Animal used: 80
Foobar used: 0
Array used: 32
String used: 32
已编辑
Crystal lang中的Ruby Hash#bytesize
是否等效?
最终,我希望能够测量任何对象,哈希或数组的大小。