АП
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() позволяет сбросить счетчики, если хотите только цикл замерить