Skip to content

Commit e56c0c8

Browse files
committed
part: Add benchmark for find*48
Signed-off-by: Jussi Maki <jussi.maki@isovalent.com>
1 parent 9ae6879 commit e56c0c8

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

part/part_test.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,6 +1662,87 @@ func Benchmark_findIndex16(b *testing.B) {
16621662
}
16631663
}
16641664

1665+
func Benchmark_find48(b *testing.B) {
1666+
n := &node48[bool]{
1667+
header: header[bool]{},
1668+
children: [48]*header[bool]{},
1669+
leaf: nil,
1670+
index: [256]int8{},
1671+
}
1672+
keyBytes := [48]byte{}
1673+
leaves := [48]leaf[bool]{}
1674+
for i := range n.index {
1675+
n.index[i] = -1
1676+
}
1677+
for i := range 48 {
1678+
keyBytes[i] = byte(i)
1679+
leaves[i].prefixP = &keyBytes[i]
1680+
leaves[i].prefixLen = 1
1681+
leaves[i].setKind(nodeKindLeaf)
1682+
n.children[i] = leaves[i].self()
1683+
n.index[byte(i)] = int8(i)
1684+
}
1685+
n.setKind(nodeKind48)
1686+
n.setSize(48)
1687+
1688+
for b.Loop() {
1689+
n.find(48)
1690+
}
1691+
}
1692+
1693+
func Benchmark_findIndex48_hit(b *testing.B) {
1694+
n := &node48[bool]{
1695+
header: header[bool]{},
1696+
children: [48]*header[bool]{},
1697+
leaf: nil,
1698+
index: [256]int8{},
1699+
}
1700+
keyBytes := [48]byte{}
1701+
leaves := [48]leaf[bool]{}
1702+
for i := range 48 {
1703+
keyBytes[i] = byte(i)
1704+
leaves[i].prefixP = &keyBytes[i]
1705+
leaves[i].prefixLen = 1
1706+
leaves[i].setKind(nodeKindLeaf)
1707+
n.children[i] = leaves[i].self()
1708+
n.index[byte(i)] = int8(i + 1)
1709+
}
1710+
n.setKind(nodeKind48)
1711+
n.setSize(48)
1712+
1713+
for b.Loop() {
1714+
n.findIndex(47)
1715+
}
1716+
}
1717+
1718+
func Benchmark_findIndex48_miss(b *testing.B) {
1719+
n := &node48[bool]{
1720+
header: header[bool]{},
1721+
children: [48]*header[bool]{},
1722+
leaf: nil,
1723+
index: [256]int8{},
1724+
}
1725+
keyBytes := [48]byte{}
1726+
leaves := [48]leaf[bool]{}
1727+
for i := range n.index {
1728+
n.index[i] = -1
1729+
}
1730+
for i := range 48 {
1731+
keyBytes[i] = byte(i)
1732+
leaves[i].prefixP = &keyBytes[i]
1733+
leaves[i].prefixLen = 1
1734+
leaves[i].setKind(nodeKindLeaf)
1735+
n.children[i] = leaves[i].self()
1736+
n.index[byte(i)] = int8(i)
1737+
}
1738+
n.setKind(nodeKind48)
1739+
n.setSize(48)
1740+
1741+
for b.Loop() {
1742+
n.findIndex(48)
1743+
}
1744+
}
1745+
16651746
func Benchmark_find4(b *testing.B) {
16661747
n := &node4[bool]{
16671748
header: header[bool]{},

0 commit comments

Comments
 (0)