- gob is faster on Go1.7.1
map[int64]float64
[]map[int64]float64
benchmark result to encode/decode map[int64]float64
Since Go1.7 encoding/json
package supports map[int64]float64
.
So I tried to check the encoding perfomance of both old gob version and new json version, and if json version is better then I replace it from gob.
# Go1.7.1
$ go test -bench . -benchmem
# map[int64]float64 1000x1
BenchmarkEncodeGobMap-4 10000 212167 ns/op 76679 B/op 2027 allocs/op
BenchmarkEncodeJSONMap-4 2000 617791 ns/op 120430 B/op 3014 allocs/op
BenchmarkDecodeGobMap-4 3000 485068 ns/op 247927 B/op 4284 allocs/op
BenchmarkDecodeJSONMap-4 2000 785869 ns/op 129814 B/op 6101 allocs/op
# []map[int64]float64 1000x1000
BenchmarkEncodeGobSliceMap-4 5 207572570 ns/op 83478294 B/op 2002054 allocs/op
BenchmarkEncodeJSONSliceMap-4 2 606564818 ns/op 119894280 B/op 3004022 allocs/op
BenchmarkDecodeGobSliceMap-4 3 445156171 ns/op 240279048 B/op 4098939 allocs/op
BenchmarkDecodeJSONSliceMap-4 2 779541167 ns/op 129597592 B/op 6098888 allocs/op
# Go1.6.2
$ go test -bench Gob -benchmem
BenchmarkEncodeGobMap-4 5000 238177 ns/op 76813 B/op 2027 allocs/op
BenchmarkDecodeGobMap-4 3000 498338 ns/op 247951 B/op 4285 allocs/op
BenchmarkEncodeGobSliceMap-4 5 233456842 ns/op 83475468 B/op 2002070 allocs/op
BenchmarkDecodeGobSliceMap-4 3 459773672 ns/op 240277658 B/op 4098986 allocs/op
# Go1.5.4
$ go test -bench Gob -benchmem
BenchmarkEncodeGobMap-4 5000 235427 ns/op 92798 B/op 2027 allocs/op
BenchmarkDecodeGobMap-4 2000 643280 ns/op 328328 B/op 6287 allocs/op
BenchmarkEncodeGobSliceMap-4 5 232615195 ns/op 99475388 B/op 2002056 allocs/op
BenchmarkDecodeGobSliceMap-4 2 574487306 ns/op 320285320 B/op 6099054 allocs/op
# Go1.4.3
$ go test -bench Gob -benchmem
BenchmarkEncodeGobMap 3000 389002 ns/op 108846 B/op 3029 allocs/op
BenchmarkDecodeGobMap 2000 948001 ns/op 318634 B/op 6390 allocs/op
BenchmarkEncodeGobSliceMap 5 333594108 ns/op 115462483 B/op 3002057 allocs/op
BenchmarkDecodeGobSliceMap 2 759865569 ns/op 302999312 B/op 6067576 allocs/op
- OSX 10.11.6
- CPU: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz
- Memory: 16 GB
forked from https://gist.github.com/evalphobia/a2ba2636acbc112f68dcd89e8b81d349