mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-01-06 00:55:51 +00:00
decef41dcc
Change use of regexp for matching literals true,false,null to simple bytes comparison. Small gain from doing this. Remove computing for position in Value as that is only needed in error messages. In order to preserve ability to compute for position later, store the original input in Value instead of just the slice containing the value, however, need to also store the start index and size of the parsed value. Using benchmark in encoding/bench_test.go now shows faster time and less memory usage than V1. name old time/op new time/op delta JSONEncode-4 30.3ms ± 1% 10.3ms ± 1% -66.02% (p=0.000 n=9+8) JSONDecode-4 54.4ms ± 3% 18.9ms ± 2% -65.33% (p=0.000 n=10+10) name old alloc/op new alloc/op delta JSONEncode-4 10.3MB ± 0% 3.9MB ± 0% -61.74% (p=0.000 n=10+9) JSONDecode-4 19.0MB ± 0% 3.6MB ± 0% -81.29% (p=0.000 n=10+9) name old allocs/op new allocs/op delta JSONEncode-4 465k ± 0% 64k ± 0% -86.30% (p=0.000 n=10+8) JSONDecode-4 289k ± 0% 163k ± 0% -43.69% (p=0.000 n=10+9) Change-Id: I0a3108d675d6442674facb065aaebd14051f6c5d Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/172662 Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> |
||
---|---|---|
.. | ||
bench_test.go | ||
decode_test.go | ||
decode.go | ||
encode_test.go | ||
encode.go | ||
number.go | ||
string.go | ||
types.go |