Your benchmark code is broken, try
func BenchmarkAdd(b *testing.B) {
q = New(100000)
for _ = range b.N {
q.Add(1)
}
}
which reports:
Running tool: /usr/local/bin/go test -benchmem -run=^$ -bench ^BenchmarkAdd$
example.com/queue
goos: darwin
goarch: amd64
pkg: example.com/queue
cpu: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
=== RUN BenchmarkAdd
BenchmarkAdd
BenchmarkAdd-8 25188489 47.18 ns/op 16 B/op
1 allocs/op
PASS
ok example.com/queue 1.363s
> On Jul 26, 2025, at 4:18 AM, karthick ayyapillai (கார்த்திக்)
> <[email protected]> wrote:
>
> hi,
> I am using a simple queue and bench marking it.
> queue.go = implementation of the queue.
> queue_test.go = benchmarking
> profile002.pdf= pprof tool mem analysis
> the command used to run the bench mark is
> `go test -run='^#' -bench=BenchmarkAdd -benchmem -count=10`
>
> results :
> ```
> go test -run='^#' -bench=BenchmarkAdd -benchmem -count=10
> goos: linux
> goarch: amd64
> pkg: queue-middleware/queue
> cpu: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz
> BenchmarkAdd-8 78255547 15.13 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 86375668 13.84 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 91471299 13.00 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 87612523 12.70 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 93454760 12.76 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 91850235 12.75 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 97128108 13.36 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 93765214 12.94 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 86242954 13.07 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> BenchmarkAdd-8 88524364 12.76 ns/op 0 B/op
> 0 allocs/op
> --- BENCH: BenchmarkAdd-8
> queue_test.go:36: size:1
> queue_test.go:36: size:5
> PASS
> ok queue-middleware/queue 11.831s
> ```
> my understanding is
> - 0B/op = no allocation done
> - 0 allocs/op = no allocation per operation
>
> Does this mean the allocation is zero for the `Add` operation?
>
> generally, when you create queue it allocates memory in heap, will it not be
> reported in `benchmem`?
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected]
> <mailto:[email protected]>.
> To view this discussion visit
> https://groups.google.com/d/msgid/golang-nuts/42c18d81-66bc-4616-9817-77195bbadeb3n%40googlegroups.com
>
> <https://groups.google.com/d/msgid/golang-nuts/42c18d81-66bc-4616-9817-77195bbadeb3n%40googlegroups.com?utm_medium=email&utm_source=footer>.
> <profile002.pdf><queue.go><queue_test.go>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/golang-nuts/F53B6765-53C0-4060-BAF6-74E49D8B991E%40ix.netcom.com.