• Agniva De Sarker's avatar
    archive/tar: optimize formatPAXRecord() call · 23cd87eb
    Agniva De Sarker authored
    By replacing fmt.Sprintf with a simple string concat, we see
    pretty good improvements across the board on time and memory.
    
    name             old time/op    new time/op    delta
    FormatPAXRecord     683ns ± 2%     210ns ± 5%  -69.22%  (p=0.000 n=10+10)
    
    name             old alloc/op   new alloc/op   delta
    FormatPAXRecord      112B ± 0%       32B ± 0%  -71.43%  (p=0.000 n=10+10)
    
    name             old allocs/op  new allocs/op  delta
    FormatPAXRecord      8.00 ± 0%      2.00 ± 0%  -75.00%  (p=0.000 n=10+10)
    
    Ran with - -cpu=1 -count=10 on an AMD64 i5-5200U CPU @ 2.20GHz
    
    Using the following benchmark:
    func BenchmarkFormatPAXRecord(b *testing.B) {
      for n := 0; n < b.N; n++ {
        formatPAXRecord("foo", "bar")
      }
    }
    
    Change-Id: I828ddbafad2e5d937f0cf5f777b512638344acfc
    Reviewed-on: https://go-review.googlesource.com/55210Reviewed-by: 's avatarJoe Tsai <thebrokentoaster@gmail.com>
    23cd87eb
strconv.go 7.79 KB