• Rob Pike's avatar
    strconv: pre-allocate in appendQuotedWith · c226f643
    Rob Pike authored
    The byte-at-a-time allocation done quoting strings in appendQuotedWith
    grows the output incrementally, which is poor behavior for very large
    strings. An easy fix is to make sure the buffer has enough room at
    least for an unquoted string.
    
    Add a benchmark with a megabyte of non-ASCII data.
    	Before: 39 allocations.
    	After: 7 allocations.
    
    We could do better by doing a lot more work but this seems like a big
    result for little effort.
    
    Fixes #31472.
    
    Change-Id: I852139e0a2bd13722c4dd329ded8ae1759abad5b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/172677Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    c226f643
strconv_test.go 2.86 KB