0
我正在使用Ruby的ZLib庫來解壓縮一個小文本(10k)gzip文件(在內存中使用一個StringIO類),並花費大約2.5秒來解壓縮。壓縮數據需要約100ms,所以我不明白爲什麼解壓縮的時間大於壓縮函數。Ruby zlib庫解壓gzip文件速度很慢
我的函數採用一個StringIO對象(與壓縮數據的內容),並返回的數組(3 - ,其中「3」由int_size參數定義的)字節的整數,如:
def decompress(io, int_size = 3)
array = Array.new(262144)
i = 0
io.rewind
gz = Zlib::GzipReader.new(io)
until gz.eof?
buffer = gz.read(int_size)
array[i] = buffer.unpack('C*').inject { |r, n| r << 8 | n }
i += 1
end
array
end
同一個文件在眨眼之間在OSX命令行解壓縮。
是否有更快的方式來解壓縮文件,或者更快的庫或使用本地系統上的gzip來實現這種情況的方法多比現在更快?
使用系統工具時,只要你可以,這些工具是驚人的效率。他們超級優化,非常可靠。 – yeyo
是啊,那是我的想法 - 但我該怎麼做? – Ash
http://blog.bigbinary.com/2012/10/18/backtick-system-exec-in-ruby.html – yeyo