diff options
author | Rob Pike <r@golang.org> | 2014-10-17 20:51:15 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2014-10-17 20:51:15 -0700 |
commit | 30af0431f29fe27d61bfdf45b9ad410ceb8c6074 (patch) | |
tree | 5cb3b803c9369944bd84b7cb014f1f25a2d8ed68 /src/text | |
parent | 4ad114508dcf5edeb4ea530ec3db2b0ecd8d4f89 (diff) | |
download | go-30af0431f29fe27d61bfdf45b9ad410ceb8c6074.tar.gz |
encoding/gob: use simple append-only buffer for encoding
Bytes buffers have more API and are a little slower. Since appending
is a key part of the path in encode, using a faster implementation
speeds things up measurably.
The couple of positive swings are likely garbage-collection related
since memory allocation looks different in the benchmark now.
I am not concerned by them.
benchmark old ns/op new ns/op delta
BenchmarkEndToEndPipe 6620 6388 -3.50%
BenchmarkEndToEndByteBuffer 3548 3600 +1.47%
BenchmarkEndToEndSliceByteBuffer 336678 367980 +9.30%
BenchmarkEncodeComplex128Slice 78199 71297 -8.83%
BenchmarkEncodeFloat64Slice 37731 32258 -14.51%
BenchmarkEncodeInt32Slice 26780 22977 -14.20%
BenchmarkEncodeStringSlice 35882 26492 -26.17%
BenchmarkDecodeComplex128Slice 194819 185126 -4.98%
BenchmarkDecodeFloat64Slice 120538 120102 -0.36%
BenchmarkDecodeInt32Slice 106442 107275 +0.78%
BenchmarkDecodeStringSlice 272902 269866 -1.11%
LGTM=ruiu
R=golang-codereviews, ruiu
CC=golang-codereviews
https://codereview.appspot.com/160990043
Diffstat (limited to 'src/text')
0 files changed, 0 insertions, 0 deletions