github.com/maurycy/go-ipld-prime@v0.6.1/impl/free/justString_test.go (about) 1 package ipldfree 2 3 import ( 4 "fmt" 5 "runtime" 6 "testing" 7 8 ipld "github.com/maurycy/go-ipld-prime" 9 ) 10 11 func BenchmarkJustString(b *testing.B) { 12 var node ipld.Node 13 for i := 0; i < b.N; i++ { 14 node = String("boxme") 15 } 16 _ = node 17 } 18 19 func BenchmarkJustStringUse(b *testing.B) { 20 var node ipld.Node 21 for i := 0; i < b.N; i++ { 22 node = String("boxme") 23 s, err := node.AsString() 24 _ = s 25 _ = err 26 } 27 } 28 29 func BenchmarkJustStringLogAllocs(b *testing.B) { 30 memUsage := func(m1, m2 *runtime.MemStats) { 31 fmt.Println( 32 "Alloc:", m2.Alloc-m1.Alloc, 33 "TotalAlloc:", m2.TotalAlloc-m1.TotalAlloc, 34 "HeapAlloc:", m2.HeapAlloc-m1.HeapAlloc, 35 ) 36 } 37 var m1, m2 runtime.MemStats 38 runtime.ReadMemStats(&m1) 39 var node ipld.Node = String("boxme") 40 runtime.ReadMemStats(&m2) 41 memUsage(&m1, &m2) 42 sinkNode = node // necessary to avoid clever elision. 43 } 44 45 var sinkNode ipld.Node