github.com/xojoc/bitset@v0.0.0-20200116205324-73c7a76a52a4/bench_test.go (about) 1 // Written by http://xojoc.pw. Public Domain. 2 3 package bitset 4 5 import ( 6 "math/big" 7 "testing" 8 ) 9 10 func Benchmark(b *testing.B) { 11 } 12 13 func BenchmarkClone(b *testing.B) { 14 s := &BitSet{} 15 s.Set(1000 * 100 * 1000) 16 for n := 0; n < b.N; n++ { 17 n := s.Clone() 18 n.Get(0) 19 } 20 } 21 func BenchmarkSet(b *testing.B) { 22 len := 1000 23 s := &BitSet{} 24 for n := 0; n < b.N; n++ { 25 for i := 0; i < len; i++ { 26 s.Set(i) 27 } 28 } 29 } 30 func BenchmarkSetBig(b *testing.B) { 31 len := 1000 32 s := big.NewInt(0) 33 for n := 0; n < b.N; n++ { 34 for i := 0; i < len; i++ { 35 s.SetBit(s, i, 1) 36 } 37 } 38 } 39 func BenchmarkSetHigh(b *testing.B) { 40 s := &BitSet{} 41 i := 1 42 for n := 0; n < b.N; n++ { 43 s.Set(100 * 1000 * 1000 * i) 44 i++ 45 } 46 } 47 func BenchmarkSetRange(b *testing.B) { 48 s := &BitSet{} 49 s.SetRange(0, 100*1000*1000) 50 } 51 func BenchmarkClearRange(b *testing.B) { 52 s := &BitSet{} 53 s.SetRange(0, 100*1000*1000) 54 s.ClearRange(0, 100*1000*1000) 55 } 56 func BenchmarkToggleRange(b *testing.B) { 57 s := &BitSet{} 58 s.SetRange(50*1000*1000, 100*1000*1000) 59 s.ToggleRange(0, 100*1000*1000) 60 } 61 func BenchmarkGetEmpty(b *testing.B) { 62 s := &BitSet{} 63 len := 1000 * 1000 64 for n := 0; n < b.N; n++ { 65 for i := 0; i < len; i++ { 66 s.Get(i) 67 } 68 } 69 } 70 func BenchmarkGetEmptyBig(b *testing.B) { 71 s := big.NewInt(0) 72 len := 1000 * 1000 73 s.SetBit(s, len-1, 1) 74 for n := 0; n < b.N; n++ { 75 for i := 0; i < len; i++ { 76 s.Bit(i) 77 } 78 } 79 } 80 81 /* 82 func BenchmarkUnion(b *testing.B) { 83 a := New(1000) 84 c := New(1000) 85 for n := 0; n < b.N; n++ { 86 a.Union(c) 87 } 88 } 89 90 func BenchmarkUnionBig(b *testing.B) { 91 len := 1000 92 a := big.NewInt(0) 93 a.SetBit(a, len-1, 1) 94 c := big.NewInt(0) 95 c.SetBit(c, len-1, 1) 96 for n := 0; n < b.N; n++ { 97 a.Or(a, c) 98 } 99 } 100 101 func BenchmarkString(b *testing.B) { 102 a := New(100000) 103 for n := 0; n < b.N; n++ { 104 _ = a.String() 105 } 106 } 107 */