我的情况不接受在内存中读取整个文件然后处理它。我有这段代码可以读取文件,而不需要将整个文件放在内存中。
def load_yaml_from_gz(gz)
loaded = nil
Zlib::GzipReader.open(gz) do |f|
# patch needed as YAML wants to know encoding
# see https://github.com/tenderlove/psych/issues/105
class << f
def external_encoding
Encoding::UTF_8
end
end
loaded = YAML.load(f, gz)
end
return loaded
end
我知道如何衡量这种设计的内存效率与读取整个文件和加载到YAML的效率有什么关系?