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  }