在Crystal Lang中获取哈希“ bytesize”

时间:2019-08-27 16:24:27

标签: crystal-lang

糟糕,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是否等效?

最终,我希望能够测量任何对象,哈希或数组的大小。

0 个答案:

没有答案