github.com/ipld/go-ipld-prime@v0.21.0/node/tests/mapBenchmarks.go (about) 1 package tests 2 3 import ( 4 "testing" 5 6 "github.com/ipld/go-ipld-prime/datamodel" 7 "github.com/ipld/go-ipld-prime/must" 8 ) 9 10 func SpecBenchmarkMapStrInt_3n_AssembleStandard(b *testing.B, np datamodel.NodePrototype) { 11 for i := 0; i < b.N; i++ { 12 sink = buildMapStrIntN3(np) 13 } 14 } 15 16 func SpecBenchmarkMapStrInt_3n_AssembleEntry(b *testing.B, np datamodel.NodePrototype) { 17 for i := 0; i < b.N; i++ { 18 nb := np.NewBuilder() 19 ma, err := nb.BeginMap(3) 20 if err != nil { 21 panic(err) 22 } 23 if va, err := ma.AssembleEntry("whee"); err != nil { 24 panic(err) 25 } else { 26 must.NotError(va.AssignInt(1)) 27 } 28 if va, err := ma.AssembleEntry("woot"); err != nil { 29 panic(err) 30 } else { 31 must.NotError(va.AssignInt(2)) 32 } 33 if va, err := ma.AssembleEntry("waga"); err != nil { 34 panic(err) 35 } else { 36 must.NotError(va.AssignInt(3)) 37 } 38 must.NotError(ma.Finish()) 39 sink = nb.Build() 40 } 41 } 42 43 func SpecBenchmarkMapStrInt_3n_Iteration(b *testing.B, np datamodel.NodePrototype) { 44 n := buildMapStrIntN3(np) 45 b.ResetTimer() 46 for i := 0; i < b.N; i++ { 47 itr := n.MapIterator() 48 for k, v, _ := itr.Next(); !itr.Done(); k, v, _ = itr.Next() { 49 sink = k 50 sink = v 51 } 52 } 53 } 54 55 // n25 --> 56 57 func SpecBenchmarkMapStrInt_25n_AssembleStandard(b *testing.B, np datamodel.NodePrototype) { 58 for i := 0; i < b.N; i++ { 59 sink = buildMapStrIntN25(np) 60 } 61 } 62 63 func SpecBenchmarkMapStrInt_25n_AssembleEntry(b *testing.B, np datamodel.NodePrototype) { 64 for i := 0; i < b.N; i++ { 65 nb := np.NewBuilder() 66 ma, err := nb.BeginMap(25) 67 if err != nil { 68 panic(err) 69 } 70 for i := 1; i <= 25; i++ { 71 if va, err := ma.AssembleEntry(tableStrInt[i-1].s); err != nil { 72 panic(err) 73 } else { 74 must.NotError(va.AssignInt(tableStrInt[i-1].i)) 75 } 76 } 77 must.NotError(ma.Finish()) 78 sink = nb.Build() 79 } 80 } 81 82 func SpecBenchmarkMapStrInt_25n_Iteration(b *testing.B, np datamodel.NodePrototype) { 83 n := buildMapStrIntN25(np) 84 b.ResetTimer() 85 for i := 0; i < b.N; i++ { 86 itr := n.MapIterator() 87 for k, v, _ := itr.Next(); !itr.Done(); k, v, _ = itr.Next() { 88 sink = k 89 sink = v 90 } 91 } 92 }