package clist import "testing" func BenchmarkDetaching(b *testing.B) { lst := New() for i := 0; i < b.N+1; i++ { lst.PushBack(i) } start := lst.Front() nxt := start.Next() b.ResetTimer() for i := 0; i < b.N; i++ { start.removed = true start.DetachNext() start.DetachPrev() tmp := nxt nxt = nxt.Next() start = tmp } } // This is used to benchmark the time of RMutex. func BenchmarkRemoved(b *testing.B) { lst := New() for i := 0; i < b.N+1; i++ { lst.PushBack(i) } start := lst.Front() nxt := start.Next() b.ResetTimer() for i := 0; i < b.N; i++ { start.Removed() tmp := nxt nxt = nxt.Next() start = tmp } } func BenchmarkPushBack(b *testing.B) { lst := New() b.ResetTimer() for i := 0; i < b.N; i++ { lst.PushBack(i) } }