mirror of
https://github.com/opencontainers/runc.git
synced 2025-11-01 11:32:44 +08:00
50 lines
868 B
Go
50 lines
868 B
Go
package fs
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/opencontainers/runc/libcontainer/cgroups"
|
|
)
|
|
|
|
func BenchmarkGetStats(b *testing.B) {
|
|
if cgroups.IsCgroup2UnifiedMode() {
|
|
b.Skip("cgroup v2 is not supported")
|
|
}
|
|
|
|
// Unset TestMode as we work with real cgroupfs here,
|
|
// and we want OpenFile to perform the fstype check.
|
|
cgroups.TestMode = false
|
|
defer func() {
|
|
cgroups.TestMode = true
|
|
}()
|
|
|
|
cg := &cgroups.Cgroup{
|
|
Path: "/some/kind/of/a/path/here",
|
|
Resources: &cgroups.Resources{},
|
|
}
|
|
m, err := NewManager(cg, nil)
|
|
if err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
err = m.Apply(-1)
|
|
if err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
defer func() {
|
|
_ = m.Destroy()
|
|
}()
|
|
|
|
var st *cgroups.Stats
|
|
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
st, err = m.GetStats()
|
|
if err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
}
|
|
if st.CpuStats.CpuUsage.TotalUsage != 0 {
|
|
b.Fatalf("stats: %+v", st)
|
|
}
|
|
}
|