On Friday, 7 August 2015 at 07:43:25 UTC, Daniel Kozák wrote:
i don't understand why the program crashes when i do not do
the .dup
This is weird. I would say it should not crash
exactely. but try it yourself.
the fastest version i could come up so far is below.
std.conv slows it down.
going from a 4kb to a 4mb buffer helped. now i'm within 30% of
gzcat's performance.
import
std.zlib,
std.file,
std.stdio;
void main(string[] args)
{
auto f = File(args[1], "rb");
auto uncompressor = new UnCompress(HeaderFormat.gzip);
foreach (ubyte[] buffer; f.byChunk(1024*1024*4))
{
auto uncompressed = cast(immutable(string))
uncompressor.uncompress(buffer.dup);
write(uncompressed);
}
}