From 911f5be340a0939dd911704b2a56ae07f981e187 Mon Sep 17 00:00:00 2001 From: Petr Gregor Date: Sun, 18 Dec 2016 14:35:47 +0100 Subject: [PATCH] Use write buffer when writing resulting image This modification resulted in large performance gain on my system (5x faster). --- command/args.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/command/args.go b/command/args.go index 1e8565a..921e76c 100644 --- a/command/args.go +++ b/command/args.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "io" + "bufio" "io/ioutil" "reflect" "encoding/hex" @@ -147,9 +148,12 @@ func (argOutImageType) prepare(arg string) (out *argout, err error) { if err != nil { return nil, err } + // Use 10MB write buffer (should be configurable) + bufw := bufio.NewWriterSize(f,10485760) out = new(argout) - out.obj = reflect.ValueOf(f) + out.obj = reflect.ValueOf(bufw) out.deferfunc = func() { + bufw.Flush() f.Close() } return out, nil