github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/vector/hnsw/commitlog/logger_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package commitlog 13 14 import ( 15 "os" 16 "testing" 17 ) 18 19 func BenchmarkSetEntryPoint(b *testing.B) { 20 defer os.Remove("./testfile") 21 ids := make([]uint64, 100) 22 levels := make([]int, 100) 23 24 l := NewLogger("./testfile") 25 26 b.ReportAllocs() 27 28 for j := 0; j < b.N; j++ { 29 for i := 0; i < 100; i++ { 30 l.SetEntryPointWithMaxLayer(ids[i], levels[i]) 31 } 32 } 33 } 34 35 func BenchmarkAddNode(b *testing.B) { 36 defer os.Remove("./testfile") 37 ids := make([]uint64, 100) 38 levels := make([]int, 100) 39 40 l := NewLogger("./testfile") 41 42 b.ReportAllocs() 43 44 for j := 0; j < b.N; j++ { 45 for i := 0; i < 100; i++ { 46 l.AddNode(ids[i], levels[i]) 47 } 48 } 49 } 50 51 func BenchmarkAddLinkAtLevel(b *testing.B) { 52 defer os.Remove("./testfile") 53 ids := make([]uint64, 100) 54 levels := make([]int, 100) 55 links := make([]uint64, 100) 56 57 l := NewLogger("./testfile") 58 59 b.ReportAllocs() 60 61 for j := 0; j < b.N; j++ { 62 for i := 0; i < 100; i++ { 63 l.AddLinkAtLevel(ids[i], levels[i], links[i]) 64 } 65 } 66 } 67 68 func BenchmarkReplaceLinksAtLevel32(b *testing.B) { 69 defer os.Remove("./testfile") 70 ids := make([]uint64, 100) 71 levels := make([]int, 100) 72 links := make([][]uint64, 100) 73 for i := range links { 74 links[i] = make([]uint64, 32) 75 } 76 77 l := NewLogger("./testfile") 78 79 b.ReportAllocs() 80 81 for j := 0; j < b.N; j++ { 82 for i := 0; i < 100; i++ { 83 l.ReplaceLinksAtLevel(ids[i], levels[i], links[i]) 84 } 85 } 86 } 87 88 func BenchmarkReplaceLinksAtLevel33(b *testing.B) { 89 defer os.Remove("./testfile") 90 ids := make([]uint64, 100) 91 levels := make([]int, 100) 92 links := make([][]uint64, 100) 93 for i := range links { 94 links[i] = make([]uint64, 33) 95 } 96 97 l := NewLogger("./testfile") 98 99 b.ReportAllocs() 100 101 for j := 0; j < b.N; j++ { 102 for i := 0; i < 100; i++ { 103 l.ReplaceLinksAtLevel(ids[i], levels[i], links[i]) 104 } 105 } 106 } 107 108 func BenchmarkAddTombstone(b *testing.B) { 109 defer os.Remove("./testfile") 110 ids := make([]uint64, 100) 111 112 l := NewLogger("./testfile") 113 114 b.ReportAllocs() 115 116 for j := 0; j < b.N; j++ { 117 for i := 0; i < 100; i++ { 118 l.AddTombstone(ids[i]) 119 } 120 } 121 } 122 123 func BenchmarkRemoveTombstone(b *testing.B) { 124 defer os.Remove("./testfile") 125 ids := make([]uint64, 100) 126 127 l := NewLogger("./testfile") 128 129 b.ReportAllocs() 130 131 for j := 0; j < b.N; j++ { 132 for i := 0; i < 100; i++ { 133 l.AddTombstone(ids[i]) 134 } 135 } 136 } 137 138 func BenchmarkClearLinks(b *testing.B) { 139 defer os.Remove("./testfile") 140 ids := make([]uint64, 100) 141 142 l := NewLogger("./testfile") 143 144 b.ReportAllocs() 145 146 for j := 0; j < b.N; j++ { 147 for i := 0; i < 100; i++ { 148 l.ClearLinks(ids[i]) 149 } 150 } 151 } 152 153 func BenchmarkDeleteNode(b *testing.B) { 154 ids := make([]uint64, 100) 155 156 l := NewLogger("./testfile") 157 158 b.ReportAllocs() 159 160 for j := 0; j < b.N; j++ { 161 for i := 0; i < 100; i++ { 162 l.DeleteNode(ids[i]) 163 } 164 } 165 } 166 167 func BenchmarkReset(b *testing.B) { 168 defer os.Remove("./testfile") 169 l := NewLogger("./testfile") 170 171 b.ReportAllocs() 172 173 for j := 0; j < b.N; j++ { 174 for i := 0; i < 100; i++ { 175 l.Reset() 176 } 177 } 178 }