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 range b.N { _, err := nm.ContainerNodes(p, pivot) if err != nil { b.Fatal(err) } } }) } }