``` goos: linux goarch: amd64 pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/tree cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz │ old │ new │ │ sec/op │ sec/op vs base │ GetSubTree/latency-8 3.542m ± 12% 4.059m ± 20% +14.59% (p=0.005 n=10) GetSubTree/total_time-8 73.19m ± 9% 78.82m ± 4% +7.69% (p=0.043 n=10) geomean 16.10m 17.89m +11.09% │ old │ new │ │ B/op │ B/op vs base │ GetSubTree/latency-8 28.23Mi ± 0% 32.81Mi ± 0% +16.22% (p=0.000 n=10) GetSubTree/total_time-8 28.23Mi ± 0% 32.81Mi ± 0% +16.22% (p=0.000 n=10) geomean 28.23Mi 32.81Mi +16.22% │ old │ new │ │ allocs/op │ allocs/op vs base │ GetSubTree/latency-8 400.0k ± 0% 400.0k ± 0% +0.00% (p=0.000 n=10) GetSubTree/total_time-8 400.0k ± 0% 400.0k ± 0% +0.00% (p=0.000 n=10) geomean 400.0k 400.0k +0.00% ``` Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
25 lines
482 B
Go
25 lines
482 B
Go
package heap
|
|
|
|
import (
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/pilorama"
|
|
)
|
|
|
|
type UnorderedSlice []pilorama.NodeInfo
|
|
|
|
func NewUnorderedSlice() *UnorderedSlice {
|
|
return &UnorderedSlice{}
|
|
}
|
|
|
|
func (s *UnorderedSlice) Insert(infos ...pilorama.NodeInfo) {
|
|
*s = append(*s, infos...)
|
|
}
|
|
|
|
func (s *UnorderedSlice) IsEmpty() bool {
|
|
return len(*s) == 0
|
|
}
|
|
|
|
func (s *UnorderedSlice) ExtractMin() pilorama.NodeInfo {
|
|
node := (*s)[0]
|
|
*s = (*s)[1:]
|
|
return node
|
|
}
|