• Justin Nuß's avatar
    encoding/csv: Preallocate records slice · 2db58f8f
    Justin Nuß authored
    Currently parseRecord will always start with a nil
    slice and then resize the slice on append. For input
    with a fixed number of fields per record we can preallocate
    the slice to avoid having to resize the slice.
    
    This change implements this optimization by using
    FieldsPerRecord as capacity if it's > 0 and also adds a
    benchmark to better show the differences.
    
    benchmark         old ns/op     new ns/op     delta
    BenchmarkRead     19741         17909         -9.28%
    
    benchmark         old allocs     new allocs     delta
    BenchmarkRead     59             41             -30.51%
    
    benchmark         old bytes     new bytes     delta
    BenchmarkRead     6276          5844          -6.88%
    
    Change-Id: I7c2abc9c80a23571369bcfcc99a8ffc474eae7ab
    Reviewed-on: https://go-review.googlesource.com/8880Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    2db58f8f
Name
Last commit
Last update
..
reader.go Loading commit data...
reader_test.go Loading commit data...
writer.go Loading commit data...
writer_test.go Loading commit data...