MCPcopy
hub / github.com/WireGuard/wireguard-go / benchmarkTrie

Function benchmarkTrie

device/allowedips_test.go:42–68  ·  view source on GitHub ↗
(peerNumber, addressNumber, _ int, b *testing.B)

Source from the content-addressed store, hash-verified

40}
41
42func benchmarkTrie(peerNumber, addressNumber, _ int, b *testing.B) {
43 var trie *trieEntry
44 var peers []*Peer
45 root := parentIndirection{&trie, 2}
46
47 rng := rand.New(rand.NewSource(1))
48
49 const AddressLength = 4
50
51 for n := 0; n < peerNumber; n++ {
52 peers = append(peers, &Peer{})
53 }
54
55 for n := 0; n < addressNumber; n++ {
56 var addr [AddressLength]byte
57 rng.Read(addr[:])
58 cidr := uint8(rng.Uint32() % (AddressLength * 8))
59 index := rng.Int() % peerNumber
60 root.insert(addr[:], cidr, peers[index])
61 }
62
63 for n := 0; n < b.N; n++ {
64 var addr [AddressLength]byte
65 rng.Read(addr[:])
66 trie.lookup(addr[:])
67 }
68}
69
70func BenchmarkTrieIPv4Peers100Addresses1000(b *testing.B) {
71 benchmarkTrie(100, 1000, net.IPv4len, b)

Calls 3

insertMethod · 0.95
lookupMethod · 0.95
ReadMethod · 0.65

Tested by

no test coverage detected