123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- // Copyright (c) 2012-2018 Ugorji Nwoke. All rights reserved.
- // Use of this source code is governed by a MIT license found in the LICENSE file.
- // +build alltests
- // +build x
- // +build go1.7
- package codec
- // see notes in z_all_bench_test.go
- import "testing"
- // Note: The following cannot parse TestStruc effectively,
- // even with changes to remove arrays and minimize integer size to fit into int64 space.
- //
- // So we exclude them, listed below:
- // encode: gcbor, xdr
- // decode: gcbor, vmsgpack, xdr, sereal
- func benchmarkXGroup(t *testing.B) {
- benchmarkDivider()
- t.Run("Benchmark__JsonIter___Encode", Benchmark__JsonIter___Encode)
- t.Run("Benchmark__Bson_______Encode", Benchmark__Bson_______Encode)
- t.Run("Benchmark__Mgobson____Encode", Benchmark__Mgobson____Encode)
- t.Run("Benchmark__VMsgpack___Encode", Benchmark__VMsgpack___Encode)
- // t.Run("Benchmark__Gcbor______Encode", Benchmark__Gcbor______Encode)
- // t.Run("Benchmark__Xdr________Encode", Benchmark__Xdr________Encode)
- t.Run("Benchmark__Sereal_____Encode", Benchmark__Sereal_____Encode)
- benchmarkDivider()
- t.Run("Benchmark__JsonIter___Decode", Benchmark__JsonIter___Decode)
- t.Run("Benchmark__Bson_______Decode", Benchmark__Bson_______Decode)
- t.Run("Benchmark__Mgobson____Decode", Benchmark__Mgobson____Decode)
- // t.Run("Benchmark__VMsgpack___Decode", Benchmark__VMsgpack___Decode)
- // t.Run("Benchmark__Gcbor______Decode", Benchmark__Gcbor______Decode)
- // t.Run("Benchmark__Xdr________Decode", Benchmark__Xdr________Decode)
- // t.Run("Benchmark__Sereal_____Decode", Benchmark__Sereal_____Decode)
- }
- func benchmarkCodecXGroup(t *testing.B) {
- benchmarkDivider()
- t.Run("Benchmark__Msgpack____Encode", Benchmark__Msgpack____Encode)
- t.Run("Benchmark__Binc_______Encode", Benchmark__Binc_______Encode)
- t.Run("Benchmark__Simple_____Encode", Benchmark__Simple_____Encode)
- t.Run("Benchmark__Cbor_______Encode", Benchmark__Cbor_______Encode)
- t.Run("Benchmark__Json_______Encode", Benchmark__Json_______Encode)
- t.Run("Benchmark__Std_Json___Encode", Benchmark__Std_Json___Encode)
- t.Run("Benchmark__Gob________Encode", Benchmark__Gob________Encode)
- // t.Run("Benchmark__Std_Xml____Encode", Benchmark__Std_Xml____Encode)
- t.Run("Benchmark__JsonIter___Encode", Benchmark__JsonIter___Encode)
- t.Run("Benchmark__Bson_______Encode", Benchmark__Bson_______Encode)
- t.Run("Benchmark__Mgobson____Encode", Benchmark__Mgobson____Encode)
- t.Run("Benchmark__VMsgpack___Encode", Benchmark__VMsgpack___Encode)
- // t.Run("Benchmark__Gcbor______Encode", Benchmark__Gcbor______Encode)
- // t.Run("Benchmark__Xdr________Encode", Benchmark__Xdr________Encode)
- t.Run("Benchmark__Sereal_____Encode", Benchmark__Sereal_____Encode)
- benchmarkDivider()
- t.Run("Benchmark__Msgpack____Decode", Benchmark__Msgpack____Decode)
- t.Run("Benchmark__Binc_______Decode", Benchmark__Binc_______Decode)
- t.Run("Benchmark__Simple_____Decode", Benchmark__Simple_____Decode)
- t.Run("Benchmark__Cbor_______Decode", Benchmark__Cbor_______Decode)
- t.Run("Benchmark__Json_______Decode", Benchmark__Json_______Decode)
- t.Run("Benchmark__Std_Json___Decode", Benchmark__Std_Json___Decode)
- t.Run("Benchmark__Gob________Decode", Benchmark__Gob________Decode)
- // t.Run("Benchmark__Std_Xml____Decode", Benchmark__Std_Xml____Decode)
- t.Run("Benchmark__JsonIter___Decode", Benchmark__JsonIter___Decode)
- t.Run("Benchmark__Bson_______Decode", Benchmark__Bson_______Decode)
- t.Run("Benchmark__Mgobson____Decode", Benchmark__Mgobson____Decode)
- // t.Run("Benchmark__VMsgpack___Decode", Benchmark__VMsgpack___Decode)
- // t.Run("Benchmark__Gcbor______Decode", Benchmark__Gcbor______Decode)
- // t.Run("Benchmark__Xdr________Decode", Benchmark__Xdr________Decode)
- // t.Run("Benchmark__Sereal_____Decode", Benchmark__Sereal_____Decode)
- }
- var benchmarkXSkipMsg = `>>>> Skipping - these cannot (en|de)code TestStruc - encode (gcbor, xdr, xml), decode (gcbor, vmsgpack, xdr, sereal, xml)`
- func BenchmarkXSuite(t *testing.B) {
- println(benchmarkXSkipMsg)
- benchmarkSuite(t, benchmarkXGroup)
- }
- func BenchmarkCodecXSuite(t *testing.B) {
- println(benchmarkXSkipMsg)
- benchmarkSuite(t, benchmarkCodecXGroup)
- }
- func benchmarkAllJsonEncodeGroup(t *testing.B) {
- benchmarkDivider()
- t.Run("Benchmark__Json_______Encode", Benchmark__Json_______Encode)
- t.Run("Benchmark__Std_Json___Encode", Benchmark__Std_Json___Encode)
- t.Run("Benchmark__JsonIter___Encode", Benchmark__JsonIter___Encode)
- }
- func benchmarkAllJsonDecodeGroup(t *testing.B) {
- benchmarkDivider()
- t.Run("Benchmark__Json_______Decode", Benchmark__Json_______Decode)
- t.Run("Benchmark__Std_Json___Decode", Benchmark__Std_Json___Decode)
- t.Run("Benchmark__JsonIter___Decode", Benchmark__JsonIter___Decode)
- }
- func BenchmarkCodecVeryQuickAllJsonSuite(t *testing.B) {
- benchmarkVeryQuickSuite(t, "json-all", benchmarkAllJsonEncodeGroup, benchmarkAllJsonDecodeGroup)
- }
- func BenchmarkCodecQuickAllJsonSuite(t *testing.B) {
- benchmarkQuickSuite(t, "json-all", benchmarkAllJsonEncodeGroup, benchmarkAllJsonDecodeGroup)
- // benchmarkQuickSuite(t, "json-all", benchmarkAllJsonEncodeGroup)
- // benchmarkQuickSuite(t, "json-all", benchmarkAllJsonDecodeGroup)
- // depths := [...]int{1, 4}
- // for _, d := range depths {
- // benchmarkQuickSuite(t, d, benchmarkAllJsonEncodeGroup)
- // benchmarkQuickSuite(t, d, benchmarkAllJsonDecodeGroup)
- // }
- // benchmarkQuickSuite(t, 1, benchmarkAllJsonEncodeGroup)
- // benchmarkQuickSuite(t, 4, benchmarkAllJsonEncodeGroup)
- // benchmarkQuickSuite(t, 1, benchmarkAllJsonDecodeGroup)
- // benchmarkQuickSuite(t, 4, benchmarkAllJsonDecodeGroup)
- // benchmarkQuickSuite(t, 1, benchmarkAllJsonEncodeGroup, benchmarkAllJsonDecodeGroup)
- // benchmarkQuickSuite(t, 4, benchmarkAllJsonEncodeGroup, benchmarkAllJsonDecodeGroup)
- // benchmarkQuickSuite(t, benchmarkAllJsonEncodeGroup)
- // benchmarkQuickSuite(t, benchmarkAllJsonDecodeGroup)
- }
|