[#87] netmap: Add benchmark for ContainerNodes()
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
0f7455ff7a
commit
030ff2f122
1 changed files with 59 additions and 0 deletions
59
netmap/bench_test.go
Normal file
59
netmap/bench_test.go
Normal file
|
@ -0,0 +1,59 @@
|
|||
package netmap
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func BenchmarkNetmap_ContainerNodes(b *testing.B) {
|
||||
nodes := []NodeInfo{
|
||||
nodeInfoFromAttributes("Country", "Russia", "Order", "1"),
|
||||
nodeInfoFromAttributes("Country", "Germany", "Order", "2"),
|
||||
nodeInfoFromAttributes("Country", "Russia", "Order", "3"),
|
||||
nodeInfoFromAttributes("Country", "France", "Order", "4"),
|
||||
nodeInfoFromAttributes("Country", "France", "Order", "5"),
|
||||
nodeInfoFromAttributes("Country", "Russia", "Order", "6"),
|
||||
nodeInfoFromAttributes("Country", "Russia", "Order", "7"),
|
||||
nodeInfoFromAttributes("Country", "Germany", "Order", "8"),
|
||||
nodeInfoFromAttributes("Country", "Germany", "Order", "9"),
|
||||
nodeInfoFromAttributes("Country", "Russia", "Order", "10"),
|
||||
nodeInfoFromAttributes("Country", "China", "Order", "11"),
|
||||
nodeInfoFromAttributes("Country", "China", "Order", "12"),
|
||||
nodeInfoFromAttributes("Country", "Finland", "Order", "13"),
|
||||
nodeInfoFromAttributes("Country", "Finland", "Order", "14"),
|
||||
nodeInfoFromAttributes("Country", "España", "Order", "15"),
|
||||
nodeInfoFromAttributes("Country", "España", "Order", "16"),
|
||||
}
|
||||
|
||||
var nm NetMap
|
||||
nm.SetNodes(nodes)
|
||||
|
||||
policies := []string{
|
||||
`REP 2`,
|
||||
`REP 2 IN X CBF 2 SELECT 2 FROM * AS X`,
|
||||
}
|
||||
cnr := cidtest.ID()
|
||||
|
||||
pivot := make([]byte, 32)
|
||||
cnr.Encode(pivot)
|
||||
|
||||
for i := range policies {
|
||||
b.Run(policies[i], func(b *testing.B) {
|
||||
var p PlacementPolicy
|
||||
require.NoError(b, p.DecodeString(policies[i]))
|
||||
|
||||
b.ResetTimer()
|
||||
b.ReportAllocs()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
_, err := nm.ContainerNodes(p, pivot)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue