diff --git a/goserbench/goserbench.go b/goserbench/goserbench.go index fe0e619..a39a73c 100644 --- a/goserbench/goserbench.go +++ b/goserbench/goserbench.go @@ -3,7 +3,7 @@ package goserbench import ( "fmt" "math" - "math/rand" + "math/rand/v2" "testing" "time" ) @@ -18,24 +18,24 @@ const ( MaxSmallStructPhoneSize = 10 ) -func randString(l int) string { +func randString(rng *rand.Rand, l int) string { buf := make([]byte, l) for i := 0; i < (l+1)/2; i++ { - buf[i] = byte(rand.Intn(256)) + buf[i] = byte(rng.IntN(256)) } return fmt.Sprintf("%x", buf)[:l] } -func generateSmallStruct() []*SmallStruct { +func generateSmallStruct(rng *rand.Rand) []*SmallStruct { a := make([]*SmallStruct, 0, 1000) for i := 0; i < 1000; i++ { a = append(a, &SmallStruct{ - Name: randString(MaxSmallStructNameSize), + Name: randString(rng, MaxSmallStructNameSize), BirthDay: time.Now(), - Phone: randString(MaxSmallStructPhoneSize), - Siblings: rand.Intn(5), - Spouse: rand.Intn(2) == 1, - Money: rand.Float64(), + Phone: randString(rng, MaxSmallStructPhoneSize), + Siblings: rng.IntN(5), + Spouse: rng.IntN(2) == 1, + Money: rng.Float64(), }) } return a @@ -44,13 +44,14 @@ func generateSmallStruct() []*SmallStruct { // BenchMarshalSmallStruct benchmarks marshalling the [SmallStruct] type. func BenchMarshalSmallStruct(b *testing.B, s Serializer) { b.Helper() - data := generateSmallStruct() + rng := rand.New(rand.NewPCG(0xdeadbeef, 0x1701d)) + data := generateSmallStruct(rng) b.ReportAllocs() b.ResetTimer() var serialSize int for i := 0; i < b.N; i++ { - o := data[rand.Intn(len(data))] + o := data[rng.IntN(len(data))] bytes, err := s.Marshal(o) if err != nil { b.Fatalf("marshal error %s for %#v", err, o) @@ -65,6 +66,7 @@ func BenchMarshalSmallStruct(b *testing.B, s Serializer) { // against the source struct. func BenchUnmarshalSmallStruct(b *testing.B, s Serializer, validate bool) { b.Helper() + rng := rand.New(rand.NewPCG(0xdeadbeef, 0x1701d)) var timePrecision time.Duration if stp, ok := s.(SerializerTimePrecision); ok { @@ -75,7 +77,7 @@ func BenchUnmarshalSmallStruct(b *testing.B, s Serializer, validate bool) { forcesUTC = set.ForcesUTC() } - data := generateSmallStruct() + data := generateSmallStruct(rng) ser := make([][]byte, len(data)) var serialSize int for i, d := range data { @@ -115,7 +117,7 @@ func BenchUnmarshalSmallStruct(b *testing.B, s Serializer, validate bool) { b.ResetTimer() for i := 0; i < b.N; i++ { - n := rand.Intn(len(ser)) + n := rng.IntN(len(ser)) *o = SmallStruct{} err := s.Unmarshal(ser[n], o) if err != nil { diff --git a/report/data.js b/report/data.js index 0b01e66..eb2111c 100644 --- a/report/data.js +++ b/report/data.js @@ -1,14 +1,14 @@ var data = [ { "name": "gotiny", - "marshal_iter_count": 3247654, - "unmarshal_iter_count": 7138230, - "total_iter_count": 10385884, + "marshal_iter_count": 3189675, + "unmarshal_iter_count": 7461224, + "total_iter_count": 10650899, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 362, - "unmarshal_ns_op": 166, - "total_ns_op": 528, + "marshal_ns_op": 374, + "unmarshal_ns_op": 160, + "total_ns_op": 534, "serialization_size": 47, "marshal_alloc_bytes": 168, "unmarshal_alloc_bytes": 32, @@ -23,14 +23,14 @@ var data = [ }, { "name": "msgp", - "marshal_iter_count": 8817481, - "unmarshal_iter_count": 6077943, - "total_iter_count": 14895424, + "marshal_iter_count": 9447794, + "unmarshal_iter_count": 5988330, + "total_iter_count": 15436124, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 134, - "unmarshal_ns_op": 200, - "total_ns_op": 334, + "marshal_ns_op": 124, + "unmarshal_ns_op": 205, + "total_ns_op": 329, "serialization_size": 97, "marshal_alloc_bytes": 128, "unmarshal_alloc_bytes": 32, @@ -45,14 +45,14 @@ var data = [ }, { "name": "msgpack", - "marshal_iter_count": 1303186, - "unmarshal_iter_count": 982790, - "total_iter_count": 2285976, + "marshal_iter_count": 1325338, + "unmarshal_iter_count": 947820, + "total_iter_count": 2273158, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 921, - "unmarshal_ns_op": 1216, - "total_ns_op": 2137, + "marshal_ns_op": 903, + "unmarshal_ns_op": 1239, + "total_ns_op": 2142, "serialization_size": 92, "marshal_alloc_bytes": 264, "unmarshal_alloc_bytes": 80, @@ -67,14 +67,14 @@ var data = [ }, { "name": "json", - "marshal_iter_count": 859290, - "unmarshal_iter_count": 345022, - "total_iter_count": 1204312, + "marshal_iter_count": 766938, + "unmarshal_iter_count": 352405, + "total_iter_count": 1119343, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1407, - "unmarshal_ns_op": 3366, - "total_ns_op": 4773, + "marshal_ns_op": 1390, + "unmarshal_ns_op": 3419, + "total_ns_op": 4809, "serialization_size": 151, "marshal_alloc_bytes": 208, "unmarshal_alloc_bytes": 248, @@ -89,14 +89,14 @@ var data = [ }, { "name": "jsoniter", - "marshal_iter_count": 1442014, - "unmarshal_iter_count": 866595, - "total_iter_count": 2308609, + "marshal_iter_count": 1417374, + "unmarshal_iter_count": 976688, + "total_iter_count": 2394062, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 837, - "unmarshal_ns_op": 1214, - "total_ns_op": 2051, + "marshal_ns_op": 843, + "unmarshal_ns_op": 1218, + "total_ns_op": 2061, "serialization_size": 141, "marshal_alloc_bytes": 200, "unmarshal_alloc_bytes": 136, @@ -111,14 +111,14 @@ var data = [ }, { "name": "easyjson", - "marshal_iter_count": 1153174, + "marshal_iter_count": 1203105, "unmarshal_iter_count": 1000000, - "total_iter_count": 2153174, + "total_iter_count": 2203105, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1044, - "unmarshal_ns_op": 1025, - "total_ns_op": 2069, + "marshal_ns_op": 993, + "unmarshal_ns_op": 1015, + "total_ns_op": 2008, "serialization_size": 151, "marshal_alloc_bytes": 976, "unmarshal_alloc_bytes": 32, @@ -133,14 +133,14 @@ var data = [ }, { "name": "bson", - "marshal_iter_count": 1293120, - "unmarshal_iter_count": 628549, - "total_iter_count": 1921669, + "marshal_iter_count": 1293276, + "unmarshal_iter_count": 650167, + "total_iter_count": 1943443, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 934, - "unmarshal_ns_op": 1827, - "total_ns_op": 2761, + "marshal_ns_op": 926, + "unmarshal_ns_op": 1934, + "total_ns_op": 2860, "serialization_size": 110, "marshal_alloc_bytes": 376, "unmarshal_alloc_bytes": 144, @@ -155,14 +155,14 @@ var data = [ }, { "name": "mongobson", - "marshal_iter_count": 732868, - "unmarshal_iter_count": 622735, - "total_iter_count": 1355603, + "marshal_iter_count": 707410, + "unmarshal_iter_count": 631911, + "total_iter_count": 1339321, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1515, - "unmarshal_ns_op": 1780, - "total_ns_op": 3295, + "marshal_ns_op": 1488, + "unmarshal_ns_op": 1794, + "total_ns_op": 3282, "serialization_size": 110, "marshal_alloc_bytes": 240, "unmarshal_alloc_bytes": 328, @@ -177,14 +177,14 @@ var data = [ }, { "name": "gob", - "marshal_iter_count": 221737, - "unmarshal_iter_count": 50125, - "total_iter_count": 271862, + "marshal_iter_count": 236794, + "unmarshal_iter_count": 49048, + "total_iter_count": 285842, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 5097, - "unmarshal_ns_op": 23870, - "total_ns_op": 28967, + "marshal_ns_op": 5197, + "unmarshal_ns_op": 24695, + "total_ns_op": 29892, "serialization_size": 172, "marshal_alloc_bytes": 1656, "unmarshal_alloc_bytes": 7808, @@ -199,14 +199,14 @@ var data = [ }, { "name": "davecgh/xdr", - "marshal_iter_count": 969937, + "marshal_iter_count": 853816, "unmarshal_iter_count": 1000000, - "total_iter_count": 1969937, + "total_iter_count": 1853816, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1240, - "unmarshal_ns_op": 1088, - "total_ns_op": 2328, + "marshal_ns_op": 1258, + "unmarshal_ns_op": 1042, + "total_ns_op": 2300, "serialization_size": 92, "marshal_alloc_bytes": 336, "unmarshal_alloc_bytes": 104, @@ -221,14 +221,14 @@ var data = [ }, { "name": "ugorji/msgpack", - "marshal_iter_count": 1238792, - "unmarshal_iter_count": 982131, - "total_iter_count": 2220923, + "marshal_iter_count": 1258454, + "unmarshal_iter_count": 842395, + "total_iter_count": 2100849, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 973, - "unmarshal_ns_op": 1216, - "total_ns_op": 2189, + "marshal_ns_op": 948, + "unmarshal_ns_op": 1197, + "total_ns_op": 2145, "serialization_size": 91, "marshal_alloc_bytes": 1240, "unmarshal_alloc_bytes": 608, @@ -243,14 +243,14 @@ var data = [ }, { "name": "ugorji/binc", - "marshal_iter_count": 1084963, - "unmarshal_iter_count": 1099303, - "total_iter_count": 2184266, + "marshal_iter_count": 1156923, + "unmarshal_iter_count": 1000000, + "total_iter_count": 2156923, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1103, - "unmarshal_ns_op": 1096, - "total_ns_op": 2199, + "marshal_ns_op": 1044, + "unmarshal_ns_op": 1088, + "total_ns_op": 2132, "serialization_size": 95, "marshal_alloc_bytes": 1256, "unmarshal_alloc_bytes": 672, @@ -265,14 +265,14 @@ var data = [ }, { "name": "sereal", - "marshal_iter_count": 422546, - "unmarshal_iter_count": 476920, - "total_iter_count": 899466, + "marshal_iter_count": 395574, + "unmarshal_iter_count": 466376, + "total_iter_count": 861950, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 2633, - "unmarshal_ns_op": 2463, - "total_ns_op": 5096, + "marshal_ns_op": 2729, + "unmarshal_ns_op": 2624, + "total_ns_op": 5353, "serialization_size": 142, "marshal_alloc_bytes": 1104, "unmarshal_alloc_bytes": 752, @@ -287,14 +287,14 @@ var data = [ }, { "name": "alecthomas/binary", - "marshal_iter_count": 859758, - "unmarshal_iter_count": 889114, - "total_iter_count": 1748872, + "marshal_iter_count": 792879, + "unmarshal_iter_count": 904930, + "total_iter_count": 1697809, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1397, - "unmarshal_ns_op": 1250, - "total_ns_op": 2647, + "marshal_ns_op": 1418, + "unmarshal_ns_op": 1251, + "total_ns_op": 2669, "serialization_size": 61, "marshal_alloc_bytes": 264, "unmarshal_alloc_bytes": 176, @@ -309,14 +309,14 @@ var data = [ }, { "name": "flatbuffers", - "marshal_iter_count": 1636479, - "unmarshal_iter_count": 7762726, - "total_iter_count": 9399205, + "marshal_iter_count": 1603395, + "unmarshal_iter_count": 8256610, + "total_iter_count": 9860005, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 730, - "unmarshal_ns_op": 153, - "total_ns_op": 883, + "marshal_ns_op": 742, + "unmarshal_ns_op": 143, + "total_ns_op": 885, "serialization_size": 95, "marshal_alloc_bytes": 376, "unmarshal_alloc_bytes": 32, @@ -331,14 +331,14 @@ var data = [ }, { "name": "flatbuffers/unsafe_reuse", - "marshal_iter_count": 4900250, - "unmarshal_iter_count": 12540393, - "total_iter_count": 17440643, + "marshal_iter_count": 4993054, + "unmarshal_iter_count": 16522866, + "total_iter_count": 21515920, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": true, - "marshal_ns_op": 246, - "unmarshal_ns_op": 98, - "total_ns_op": 344, + "marshal_ns_op": 241, + "unmarshal_ns_op": 78, + "total_ns_op": 319, "serialization_size": 95, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 0, @@ -353,14 +353,14 @@ var data = [ }, { "name": "capnproto", - "marshal_iter_count": 545534, - "unmarshal_iter_count": 3282273, - "total_iter_count": 3827807, + "marshal_iter_count": 578094, + "unmarshal_iter_count": 3355951, + "total_iter_count": 3934045, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 2181, - "unmarshal_ns_op": 364, - "total_ns_op": 2545, + "marshal_ns_op": 2119, + "unmarshal_ns_op": 357, + "total_ns_op": 2476, "serialization_size": 96, "marshal_alloc_bytes": 4392, "unmarshal_alloc_bytes": 112, @@ -380,9 +380,9 @@ var data = [ "total_iter_count": 2000000, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1254, - "unmarshal_ns_op": 1336, - "total_ns_op": 2590, + "marshal_ns_op": 1723, + "unmarshal_ns_op": 1007, + "total_ns_op": 2730, "serialization_size": 85, "marshal_alloc_bytes": 412, "unmarshal_alloc_bytes": 223, @@ -397,14 +397,14 @@ var data = [ }, { "name": "hprose2", - "marshal_iter_count": 2998497, - "unmarshal_iter_count": 2689975, - "total_iter_count": 5688472, + "marshal_iter_count": 3079254, + "unmarshal_iter_count": 2712721, + "total_iter_count": 5791975, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 402, - "unmarshal_ns_op": 444, - "total_ns_op": 846, + "marshal_ns_op": 405, + "unmarshal_ns_op": 452, + "total_ns_op": 857, "serialization_size": 85, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 56, @@ -419,14 +419,14 @@ var data = [ }, { "name": "dedis/protobuf", - "marshal_iter_count": 1829186, - "unmarshal_iter_count": 1339342, - "total_iter_count": 3168528, + "marshal_iter_count": 1776849, + "unmarshal_iter_count": 1260654, + "total_iter_count": 3037503, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 755, - "unmarshal_ns_op": 903, - "total_ns_op": 1658, + "marshal_ns_op": 662, + "unmarshal_ns_op": 956, + "total_ns_op": 1618, "serialization_size": 52, "marshal_alloc_bytes": 144, "unmarshal_alloc_bytes": 104, @@ -441,14 +441,14 @@ var data = [ }, { "name": "pulsar", - "marshal_iter_count": 2303378, - "unmarshal_iter_count": 2449497, - "total_iter_count": 4752875, + "marshal_iter_count": 2382856, + "unmarshal_iter_count": 2457015, + "total_iter_count": 4839871, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 525, - "unmarshal_ns_op": 484, - "total_ns_op": 1009, + "marshal_ns_op": 504, + "unmarshal_ns_op": 480, + "total_ns_op": 984, "serialization_size": 51, "marshal_alloc_bytes": 304, "unmarshal_alloc_bytes": 160, @@ -463,14 +463,14 @@ var data = [ }, { "name": "protobuf-go", - "marshal_iter_count": 4199473, - "unmarshal_iter_count": 3368353, - "total_iter_count": 7567826, + "marshal_iter_count": 4114768, + "unmarshal_iter_count": 3415900, + "total_iter_count": 7530668, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 287, - "unmarshal_ns_op": 356, - "total_ns_op": 643, + "marshal_ns_op": 298, + "unmarshal_ns_op": 346, + "total_ns_op": 644, "serialization_size": 51, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -485,14 +485,14 @@ var data = [ }, { "name": "gogo/protobuf", - "marshal_iter_count": 10420051, - "unmarshal_iter_count": 7253460, - "total_iter_count": 17673511, + "marshal_iter_count": 11305765, + "unmarshal_iter_count": 7432551, + "total_iter_count": 18738316, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 115, - "unmarshal_ns_op": 166, - "total_ns_op": 281, + "marshal_ns_op": 103, + "unmarshal_ns_op": 165, + "total_ns_op": 268, "serialization_size": 53, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -507,18 +507,18 @@ var data = [ }, { "name": "gogo/jsonpb", - "marshal_iter_count": 105903, - "unmarshal_iter_count": 82950, - "total_iter_count": 188853, + "marshal_iter_count": 104463, + "unmarshal_iter_count": 80523, + "total_iter_count": 184986, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 11285, - "unmarshal_ns_op": 14812, - "total_ns_op": 26097, + "marshal_ns_op": 11361, + "unmarshal_ns_op": 15226, + "total_ns_op": 26587, "serialization_size": 125, - "marshal_alloc_bytes": 2659, + "marshal_alloc_bytes": 2663, "unmarshal_alloc_bytes": 3061, - "total_alloc_bytes": 5720, + "total_alloc_bytes": 5724, "marshal_allocs": 68, "unmarshal_allocs": 43, "total_allocs": 111, @@ -529,14 +529,14 @@ var data = [ }, { "name": "colfer", - "marshal_iter_count": 10260195, - "unmarshal_iter_count": 9852162, - "total_iter_count": 20112357, + "marshal_iter_count": 13766042, + "unmarshal_iter_count": 10727497, + "total_iter_count": 24493539, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 115, - "unmarshal_ns_op": 123, - "total_ns_op": 238, + "marshal_ns_op": 85, + "unmarshal_ns_op": 112, + "total_ns_op": 197, "serialization_size": 51, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -551,14 +551,14 @@ var data = [ }, { "name": "gencode", - "marshal_iter_count": 9332352, - "unmarshal_iter_count": 9154633, - "total_iter_count": 18486985, + "marshal_iter_count": 11180386, + "unmarshal_iter_count": 10146618, + "total_iter_count": 21327004, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 122, - "unmarshal_ns_op": 132, - "total_ns_op": 254, + "marshal_ns_op": 111, + "unmarshal_ns_op": 116, + "total_ns_op": 227, "serialization_size": 53, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -573,14 +573,14 @@ var data = [ }, { "name": "gencode/unsafe_reuse", - "marshal_iter_count": 26959874, - "unmarshal_iter_count": 11509878, - "total_iter_count": 38469752, + "marshal_iter_count": 36165686, + "unmarshal_iter_count": 13836986, + "total_iter_count": 50002672, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": true, - "marshal_ns_op": 48, - "unmarshal_ns_op": 104, - "total_ns_op": 152, + "marshal_ns_op": 36, + "unmarshal_ns_op": 88, + "total_ns_op": 124, "serialization_size": 46, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 32, @@ -595,14 +595,14 @@ var data = [ }, { "name": "calmh/xdr", - "marshal_iter_count": 7797838, - "unmarshal_iter_count": 8899627, - "total_iter_count": 16697465, + "marshal_iter_count": 8422870, + "unmarshal_iter_count": 9759630, + "total_iter_count": 18182500, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 151, - "unmarshal_ns_op": 136, - "total_ns_op": 287, + "marshal_ns_op": 140, + "unmarshal_ns_op": 125, + "total_ns_op": 265, "serialization_size": 60, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -617,14 +617,14 @@ var data = [ }, { "name": "goavro", - "marshal_iter_count": 589597, - "unmarshal_iter_count": 241372, - "total_iter_count": 830969, + "marshal_iter_count": 616975, + "unmarshal_iter_count": 245839, + "total_iter_count": 862814, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 1884, - "unmarshal_ns_op": 5003, - "total_ns_op": 6887, + "marshal_ns_op": 1874, + "unmarshal_ns_op": 5005, + "total_ns_op": 6879, "serialization_size": 47, "marshal_alloc_bytes": 584, "unmarshal_alloc_bytes": 2232, @@ -639,14 +639,14 @@ var data = [ }, { "name": "avro2/text", - "marshal_iter_count": 369188, - "unmarshal_iter_count": 412360, - "total_iter_count": 781548, + "marshal_iter_count": 373567, + "unmarshal_iter_count": 407347, + "total_iter_count": 780914, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 3131, - "unmarshal_ns_op": 2908, - "total_ns_op": 6039, + "marshal_ns_op": 3101, + "unmarshal_ns_op": 2915, + "total_ns_op": 6016, "serialization_size": 133, "marshal_alloc_bytes": 1320, "unmarshal_alloc_bytes": 656, @@ -661,14 +661,14 @@ var data = [ }, { "name": "avro2/binary", - "marshal_iter_count": 1363780, - "unmarshal_iter_count": 1329542, - "total_iter_count": 2693322, + "marshal_iter_count": 1367774, + "unmarshal_iter_count": 1342294, + "total_iter_count": 2710068, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 886, - "unmarshal_ns_op": 901, - "total_ns_op": 1787, + "marshal_ns_op": 876, + "unmarshal_ns_op": 892, + "total_ns_op": 1768, "serialization_size": 47, "marshal_alloc_bytes": 464, "unmarshal_alloc_bytes": 464, @@ -683,14 +683,14 @@ var data = [ }, { "name": "ikea", - "marshal_iter_count": 2026972, - "unmarshal_iter_count": 1794320, - "total_iter_count": 3821292, + "marshal_iter_count": 2110626, + "unmarshal_iter_count": 1819879, + "total_iter_count": 3930505, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 590, - "unmarshal_ns_op": 674, - "total_ns_op": 1264, + "marshal_ns_op": 582, + "unmarshal_ns_op": 670, + "total_ns_op": 1252, "serialization_size": 55, "marshal_alloc_bytes": 72, "unmarshal_alloc_bytes": 96, @@ -705,14 +705,14 @@ var data = [ }, { "name": "shamaton/msgpack/map", - "marshal_iter_count": 1805672, - "unmarshal_iter_count": 1902604, - "total_iter_count": 3708276, + "marshal_iter_count": 1847170, + "unmarshal_iter_count": 1942432, + "total_iter_count": 3789602, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 671, - "unmarshal_ns_op": 635, - "total_ns_op": 1306, + "marshal_ns_op": 658, + "unmarshal_ns_op": 622, + "total_ns_op": 1280, "serialization_size": 92, "marshal_alloc_bytes": 192, "unmarshal_alloc_bytes": 88, @@ -727,14 +727,14 @@ var data = [ }, { "name": "shamaton/msgpack/array", - "marshal_iter_count": 2034438, - "unmarshal_iter_count": 2490765, - "total_iter_count": 4525203, + "marshal_iter_count": 2164312, + "unmarshal_iter_count": 2674684, + "total_iter_count": 4838996, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 582, - "unmarshal_ns_op": 476, - "total_ns_op": 1058, + "marshal_ns_op": 569, + "unmarshal_ns_op": 456, + "total_ns_op": 1025, "serialization_size": 50, "marshal_alloc_bytes": 160, "unmarshal_alloc_bytes": 88, @@ -749,14 +749,14 @@ var data = [ }, { "name": "shamaton/msgpackgen/map", - "marshal_iter_count": 4848866, - "unmarshal_iter_count": 3311181, - "total_iter_count": 8160047, + "marshal_iter_count": 5100925, + "unmarshal_iter_count": 3327084, + "total_iter_count": 8428009, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 242, - "unmarshal_ns_op": 358, - "total_ns_op": 600, + "marshal_ns_op": 232, + "unmarshal_ns_op": 360, + "total_ns_op": 592, "serialization_size": 92, "marshal_alloc_bytes": 176, "unmarshal_alloc_bytes": 112, @@ -771,14 +771,14 @@ var data = [ }, { "name": "shamaton/msgpackgen/array", - "marshal_iter_count": 5254903, - "unmarshal_iter_count": 5518424, - "total_iter_count": 10773327, + "marshal_iter_count": 6219951, + "unmarshal_iter_count": 5538631, + "total_iter_count": 11758582, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 208, - "unmarshal_ns_op": 216, - "total_ns_op": 424, + "marshal_ns_op": 195, + "unmarshal_ns_op": 213, + "total_ns_op": 408, "serialization_size": 50, "marshal_alloc_bytes": 144, "unmarshal_alloc_bytes": 112, @@ -793,14 +793,14 @@ var data = [ }, { "name": "ssz", - "marshal_iter_count": 388062, - "unmarshal_iter_count": 657604, - "total_iter_count": 1045666, + "marshal_iter_count": 384408, + "unmarshal_iter_count": 629774, + "total_iter_count": 1014182, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 3160, - "unmarshal_ns_op": 1939, - "total_ns_op": 5099, + "marshal_ns_op": 3150, + "unmarshal_ns_op": 2019, + "total_ns_op": 5169, "serialization_size": 55, "marshal_alloc_bytes": 104, "unmarshal_alloc_bytes": 88, @@ -815,14 +815,14 @@ var data = [ }, { "name": "200sc/bebop", - "marshal_iter_count": 12360867, - "unmarshal_iter_count": 10785926, - "total_iter_count": 23146793, + "marshal_iter_count": 15425859, + "unmarshal_iter_count": 12421802, + "total_iter_count": 27847661, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 94, - "unmarshal_ns_op": 112, - "total_ns_op": 206, + "marshal_ns_op": 72, + "unmarshal_ns_op": 98, + "total_ns_op": 170, "serialization_size": 55, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -837,14 +837,14 @@ var data = [ }, { "name": "200sc/bebop/reuse", - "marshal_iter_count": 23594652, - "unmarshal_iter_count": 10686052, - "total_iter_count": 34280704, + "marshal_iter_count": 34775450, + "unmarshal_iter_count": 11678222, + "total_iter_count": 46453672, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": true, - "marshal_ns_op": 52, - "unmarshal_ns_op": 110, - "total_ns_op": 162, + "marshal_ns_op": 37, + "unmarshal_ns_op": 97, + "total_ns_op": 134, "serialization_size": 55, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 32, @@ -859,14 +859,14 @@ var data = [ }, { "name": "wellquite/bebop", - "marshal_iter_count": 12384184, - "unmarshal_iter_count": 9892989, - "total_iter_count": 22277173, + "marshal_iter_count": 15400294, + "unmarshal_iter_count": 11508200, + "total_iter_count": 26908494, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 95, - "unmarshal_ns_op": 118, - "total_ns_op": 213, + "marshal_ns_op": 75, + "unmarshal_ns_op": 105, + "total_ns_op": 180, "serialization_size": 55, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -881,14 +881,14 @@ var data = [ }, { "name": "wellquite/bebop/reuse", - "marshal_iter_count": 24528868, - "unmarshal_iter_count": 10210911, - "total_iter_count": 34739779, + "marshal_iter_count": 32080238, + "unmarshal_iter_count": 11877808, + "total_iter_count": 43958046, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": true, - "marshal_ns_op": 50, - "unmarshal_ns_op": 116, - "total_ns_op": 166, + "marshal_ns_op": 40, + "unmarshal_ns_op": 104, + "total_ns_op": 144, "serialization_size": 55, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 32, @@ -903,14 +903,14 @@ var data = [ }, { "name": "fastjson", - "marshal_iter_count": 500336, - "unmarshal_iter_count": 544534, - "total_iter_count": 1044870, + "marshal_iter_count": 650811, + "unmarshal_iter_count": 552523, + "total_iter_count": 1203334, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 2000, - "unmarshal_ns_op": 2056, - "total_ns_op": 4056, + "marshal_ns_op": 1854, + "unmarshal_ns_op": 1924, + "total_ns_op": 3778, "serialization_size": 133, "marshal_alloc_bytes": 1864, "unmarshal_alloc_bytes": 1800, @@ -925,14 +925,14 @@ var data = [ }, { "name": "fastjson/reuse", - "marshal_iter_count": 664064, - "unmarshal_iter_count": 500023, - "total_iter_count": 1164087, + "marshal_iter_count": 834891, + "unmarshal_iter_count": 559944, + "total_iter_count": 1394835, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": true, - "marshal_ns_op": 1529, - "unmarshal_ns_op": 2061, - "total_ns_op": 3590, + "marshal_ns_op": 1437, + "unmarshal_ns_op": 1933, + "total_ns_op": 3370, "serialization_size": 133, "marshal_alloc_bytes": 1360, "unmarshal_alloc_bytes": 1800, @@ -947,14 +947,14 @@ var data = [ }, { "name": "benc", - "marshal_iter_count": 14006010, - "unmarshal_iter_count": 11368335, - "total_iter_count": 25374345, + "marshal_iter_count": 18358398, + "unmarshal_iter_count": 13190098, + "total_iter_count": 31548496, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 81, - "unmarshal_ns_op": 103, - "total_ns_op": 184, + "marshal_ns_op": 63, + "unmarshal_ns_op": 92, + "total_ns_op": 155, "serialization_size": 51, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -969,14 +969,14 @@ var data = [ }, { "name": "benc/usafe", - "marshal_iter_count": 14015796, - "unmarshal_iter_count": 30669090, - "total_iter_count": 44684886, + "marshal_iter_count": 16334601, + "unmarshal_iter_count": 43626460, + "total_iter_count": 59961061, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": false, - "marshal_ns_op": 80, - "unmarshal_ns_op": 41, - "total_ns_op": 121, + "marshal_ns_op": 70, + "unmarshal_ns_op": 29, + "total_ns_op": 99, "serialization_size": 51, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 0, @@ -991,14 +991,14 @@ var data = [ }, { "name": "mus", - "marshal_iter_count": 12620026, - "unmarshal_iter_count": 9325752, - "total_iter_count": 21945778, + "marshal_iter_count": 14716228, + "unmarshal_iter_count": 10623970, + "total_iter_count": 25340198, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 92, - "unmarshal_ns_op": 122, - "total_ns_op": 214, + "marshal_ns_op": 78, + "unmarshal_ns_op": 112, + "total_ns_op": 190, "serialization_size": 49, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -1013,14 +1013,14 @@ var data = [ }, { "name": "mus/unsafe_reuse", - "marshal_iter_count": 24823722, - "unmarshal_iter_count": 21048848, - "total_iter_count": 45872570, + "marshal_iter_count": 33023974, + "unmarshal_iter_count": 28974163, + "total_iter_count": 61998137, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": true, - "marshal_ns_op": 50, - "unmarshal_ns_op": 55, - "total_ns_op": 105, + "marshal_ns_op": 37, + "unmarshal_ns_op": 44, + "total_ns_op": 81, "serialization_size": 49, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 0, @@ -1035,14 +1035,14 @@ var data = [ }, { "name": "idr", - "marshal_iter_count": 11318032, - "unmarshal_iter_count": 10044177, - "total_iter_count": 21362209, + "marshal_iter_count": 13936224, + "unmarshal_iter_count": 10669694, + "total_iter_count": 24605918, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 103, - "unmarshal_ns_op": 120, - "total_ns_op": 223, + "marshal_ns_op": 85, + "unmarshal_ns_op": 113, + "total_ns_op": 198, "serialization_size": 54, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 32, @@ -1057,14 +1057,14 @@ var data = [ }, { "name": "idr/reuse", - "marshal_iter_count": 18786597, - "unmarshal_iter_count": 9917632, - "total_iter_count": 28704229, + "marshal_iter_count": 27738682, + "unmarshal_iter_count": 10636932, + "total_iter_count": 38375614, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": true, - "marshal_ns_op": 62, - "unmarshal_ns_op": 121, - "total_ns_op": 183, + "marshal_ns_op": 46, + "unmarshal_ns_op": 112, + "total_ns_op": 158, "serialization_size": 54, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 32, @@ -1079,14 +1079,14 @@ var data = [ }, { "name": "baseline", - "marshal_iter_count": 16006568, - "unmarshal_iter_count": 13342214, - "total_iter_count": 29348782, + "marshal_iter_count": 21239166, + "unmarshal_iter_count": 15242952, + "total_iter_count": 36482118, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 73, - "unmarshal_ns_op": 90, - "total_ns_op": 163, + "marshal_ns_op": 51, + "unmarshal_ns_op": 79, + "total_ns_op": 130, "serialization_size": 47, "marshal_alloc_bytes": 48, "unmarshal_alloc_bytes": 32, @@ -1101,14 +1101,14 @@ var data = [ }, { "name": "baseline/unsafe_reuse", - "marshal_iter_count": 31205463, - "unmarshal_iter_count": 40459213, - "total_iter_count": 71664676, + "marshal_iter_count": 46945939, + "unmarshal_iter_count": 71791154, + "total_iter_count": 118737093, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": true, - "marshal_ns_op": 39, - "unmarshal_ns_op": 31, - "total_ns_op": 70, + "marshal_ns_op": 27, + "unmarshal_ns_op": 18, + "total_ns_op": 45, "serialization_size": 47, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 0, @@ -1123,14 +1123,14 @@ var data = [ }, { "name": "baseline_rw", - "marshal_iter_count": 6351998, - "unmarshal_iter_count": 6965425, - "total_iter_count": 13317423, + "marshal_iter_count": 7409365, + "unmarshal_iter_count": 7216321, + "total_iter_count": 14625686, "unsafe_string_unmarshal": false, "buffer_reuse_marshal": false, - "marshal_ns_op": 183, + "marshal_ns_op": 162, "unmarshal_ns_op": 171, - "total_ns_op": 354, + "total_ns_op": 333, "serialization_size": 47, "marshal_alloc_bytes": 80, "unmarshal_alloc_bytes": 32, @@ -1145,14 +1145,14 @@ var data = [ }, { "name": "baseline_rw/unsafe_reuse", - "marshal_iter_count": 15356613, - "unmarshal_iter_count": 11561896, - "total_iter_count": 26918509, + "marshal_iter_count": 22135460, + "unmarshal_iter_count": 11695071, + "total_iter_count": 33830531, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": true, - "marshal_ns_op": 82, - "unmarshal_ns_op": 104, - "total_ns_op": 186, + "marshal_ns_op": 58, + "unmarshal_ns_op": 106, + "total_ns_op": 164, "serialization_size": 47, "marshal_alloc_bytes": 0, "unmarshal_alloc_bytes": 0, @@ -1167,14 +1167,14 @@ var data = [ }, { "name": "fastape", - "marshal_iter_count": 10802157, - "unmarshal_iter_count": 22194049, - "total_iter_count": 32996206, + "marshal_iter_count": 13419218, + "unmarshal_iter_count": 33717451, + "total_iter_count": 47136669, "unsafe_string_unmarshal": true, "buffer_reuse_marshal": false, - "marshal_ns_op": 107, - "unmarshal_ns_op": 57, - "total_ns_op": 164, + "marshal_ns_op": 87, + "unmarshal_ns_op": 39, + "total_ns_op": 126, "serialization_size": 55, "marshal_alloc_bytes": 64, "unmarshal_alloc_bytes": 0,