获取Marshal.dump输出的KB大小

时间:2012-04-05 16:46:50

标签: ruby-on-rails ruby marshalling

我正在使用Marshal.dump序列化一个对象数组,我需要获取返回值的大小(以KB为单位)。任何想法如何做到这一点?

3 个答案:

答案 0 :(得分:3)

由于Marshal.dump的输出是一个字符串,您可以只询问它的长度。最安全的方法是询问bytesize

dumped = Marshal.dump(array)
kb = dumped.bytesize / 1024

bytesize方法始终以字节为单位返回字符串的长度,而length以字符形式返回字符串的长度。如果使用UTF-8等多字节编码方法,这两个值可能会有所不同。

答案 1 :(得分:0)

kbytes = Marshal.dump(ary_of_objs).size / 1000.0怎么样?

答案 2 :(得分:0)

var = Base64.encode64(Marshal.dump(@result))
var.size 

对我来说是生命的救星