在Ruby 1.9.3中,以字节为单位获取给定哈希(或任何对象)大小的最佳方法是什么?

"Find number of bytes a particular Hash is using in Ruby"的解决方案在1.9.3中似乎无效,因为ObjectSpace的文档中没有memsize_of.

推荐答案

1.9.3中的ObjectSpace.memsize_of does work,是否记录:

puts RUBY_VERSION #=>1.9.3

require 'objspace'

p ObjectSpace.memsize_of("a"*23)    #=> 23 
p ObjectSpace.memsize_of("a"*24)    #=> 24 
p ObjectSpace.memsize_of("a".*1000) #=> 1000
h = {"a"=>1, "b"=>2}
p ObjectSpace.memsize_of(h)         #=> 116

Ruby相关问答推荐

ruby:rubocop 抱怨将 if else 转换为 case 语句

你如何称呼 Ruby 中的 &: 运算符?

判断Ruby中的目录是否为空

需要Ruby

为什么我们要在 Ruby 的类中放置一个模块?

Ruby 中数组和哈希的性能

删除 Ruby 数组中的 nil 和空白字符串

扩展self 和module_function一样吗?

Vagrant - 如何拥有特定于主机平台的配置步骤

为什么整数除法在许多脚本语言中舍入?

Ruby 运算符优先级表

Ruby 'require' 语句是在类定义的内部还是外部?

在 Rspec 测试中运行 Rake 任务

Ruby on rails - 静态方法

如何合并 Ruby 哈希

Ruby NOT Rails 中有复数函数吗?

`File` 对象访问模式的区别(即 w+, r+)

为什么表达式 (true == true == true) 会产生语法错误?

当我们导入 csv 数据时,如何消除UTF-8 中的无效字节序列

如何将逗号分隔的字符串转换为数组?