-
Rick Arnold authored
Skip most of the scanning and parsing logic for simple (non-object/array) JSON values. benchmark old ns/op new ns/op delta BenchmarkUnmarshalInt 948 436 -54.01% BenchmarkUnmarshalUint 930 427 -54.09% BenchmarkUnmarshalString 1407 715 -49.18% BenchmarkUnmarshalFloat 1114 536 -51.89% BenchmarkUnmarshalBool 759 266 -64.95% BenchmarkUnmarshalStruct 8165 8181 +0.20% No significant effects on the go1 benchmarks: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 9647362752 9596196417 -0.53% BenchmarkFannkuch11 5623613048 5518694872 -1.87% BenchmarkGobDecode 32944041 33165434 +0.67% BenchmarkGobEncode 21237482 21080554 -0.74% BenchmarkGzip 750955920 749861980 -0.15% BenchmarkGunzip 197369742 197886192 +0.26% BenchmarkJSONEncode 79274091 78891137 -0.48% BenchmarkJSONDecode 180257802 175280358 -2.76% BenchmarkMandelbrot200 7396666 7388266 -0.11% BenchmarkParse 11446460 11386550 -0.52% BenchmarkRevcomp 1605152523 1599512029 -0.35% BenchmarkTemplate 204538247 207765574 +1.58% benchmark old MB/s new MB/s speedup BenchmarkGobDecode 23.30 23.14 0.99x BenchmarkGobEncode 36.14 36.41 1.01x BenchmarkGzip 25.84 25.88 1.00x BenchmarkGunzip 98.32 98.06 1.00x BenchmarkJSONEncode 24.48 24.60 1.00x BenchmarkJSONDecode 10.76 11.07 1.03x BenchmarkParse 5.06 5.09 1.01x BenchmarkRevcomp 158.34 158.90 1.00x BenchmarkTemplate 9.49 9.34 0.98x Fixes #3949. R=golang-dev, dave, bradfitz, timo CC=golang-dev https://golang.org/cl/7068043
60abc6b5