On Fri, 07 Aug 2015 08:01:27 +0000 "yawniek" <dl...@srtnwz.com> wrote:
> On Friday, 7 August 2015 at 07:48:25 UTC, yawniek wrote: > > On Friday, 7 August 2015 at 07:43:25 UTC, Daniel Kozák wrote: > > 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. > > ok maybe not, there is another problem, not everything seems to > get flushed, i'm missing output > > > import std.zlib, std.file, std.stdio, std.conv; void main(string[] args) { auto f = File(args[1], "rb"); auto uncompressor = new UnCompress(HeaderFormat.gzip); foreach (buffer; f.byChunk(4096)) { auto uncompressed = cast(char[])(uncompressor.uncompress(buffer.idup)); write(uncompressed); } write(cast(char[])uncompressor.flush); } this is faster for me than zcat