]> Cypherpunks repositories - gostls13.git/commit
archive/tar: reuse temporary buffer in writeHeader
authorCristian Staretu <unclejacksons@gmail.com>
Wed, 2 Jul 2014 23:40:53 +0000 (09:40 +1000)
committerDavid Symonds <dsymonds@golang.org>
Wed, 2 Jul 2014 23:40:53 +0000 (09:40 +1000)
commitfe5a358aaeb7e582b763125c1e05e601ccad3b63
tree51ffa6d8c588edfd15d74c8bfbbec5689a009ebe
parent372f399e00693b1d49bc1243feb66f2c9bf0dd5c
archive/tar: reuse temporary buffer in writeHeader

A temporary 512 bytes buffer is allocated for every call to
writeHeader. This buffer could be reused the lower the number
of memory allocations.

benchmark                   old ns/op     new ns/op     delta
BenchmarkWriteFiles100k     634622051     583810847     -8.01%

benchmark                   old allocs     new allocs     delta
BenchmarkWriteFiles100k     2701920        2602621        -3.68%

benchmark                   old bytes     new bytes     delta
BenchmarkWriteFiles100k     115383884     64349922      -44.23%

This change is very important if your code has to write a lot of
tarballs with a lot of files.

LGTM=dsymonds
R=golang-codereviews, dave, dsymonds
CC=golang-codereviews
https://golang.org/cl/107440043
src/pkg/archive/tar/writer.go