]> Cypherpunks repositories - gostls13.git/commit
encoding/json: allocate less in NewEncoder
authorBrad Fitzpatrick <bradfitz@golang.org>
Tue, 14 May 2013 22:50:46 +0000 (15:50 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 14 May 2013 22:50:46 +0000 (15:50 -0700)
commitf1583bb9563827fe132c97798657a6c60e6a0457
tree5d493a52953837dd0b2a005ee06382dfd4edc4f3
parentd73452b30f777152895002792cfd5751df642ea4
encoding/json: allocate less in NewEncoder

The *Encoder is almost always garbage. It doesn't need an
encodeState inside of it (and its bytes.Buffer), since it's
only needed locally inside of Encode.

benchmark                 old ns/op    new ns/op    delta
BenchmarkEncoderEncode         2562         2553   -0.35%

benchmark                 old bytes    new bytes    delta
BenchmarkEncoderEncode          283          102  -63.96%

R=r
CC=gobot, golang-dev
https://golang.org/cl/9365044
src/pkg/encoding/json/encode.go
src/pkg/encoding/json/stream.go
src/pkg/encoding/json/stream_test.go