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  }