АП
Size: a a a
АП
АП
с
АД
items := make([]TaskInterface, 0, 1000)
должно спасать от аллокаций при items = append(items, item)
? или это бесполезно. и зачем тогда возможность указывать capacity есть?с
с
append
проверяет capacity и если он слишком маленький, переаллоцирует-копирует слайсАД
с
с
Z
АД
ffunc BenchmarkMemoryQueue_AddTask(b *testing.B) {
queue := NewQueue()
for n := 0; n < b.N; n++ {
queue.AddTask(NewTask(LowestPriority, func() error {
return nil
}))
}
}
BenchmarkMemoryQueue_AddTask-4 6983637 173 ns/op 126 B/op 1 allocs/op
с
АД
АД
func BenchmarkMemoryQueue_AddTask(b *testing.B) {
queue := NewQueue()
task := NewTask(LowestPriority, func() error {
return nil
})
for n := 0; n < b.N; n++ {
queue.AddTask(task)
}
}
АД
с
с
func BenchmarkMemoryQueue_AddTask(b *testing.B) {
queue := NewQueue()
task := NewTask(LowestPriority, func() error {
return nil
})
for n := 0; n < b.N; n++ {
queue.AddTask(task)
}
}
b.ResetTimer()
позволяет сбросить счетчики, если хотите только цикл замерить