Skip to content

Conversation

@ankur-anand
Copy link
Owner

@ankur-anand ankur-anand commented Jul 29, 2025

goos: darwin
goarch: arm64
pkg: github.com/ankur-anand/taskwheel
cpu: Apple M2 Pro
BenchmarkExpirationOverhead_N
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_1000
    timewheel_kvbench_test.go:149: Expired 1000 timers in 51.16775ms (51167.75 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:149: Expired 1000 timers in 51.1615ms (51161.50 ns/timer, 50 ticks)
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_1000-10         	      22	  51217729 ns/op	   17599 B/op	      11 allocs/op
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_1000
    timewheel_kvbench_test.go:180: Expired 1000 timers in 53.3345ms (53334.50 ns/timer)
    timewheel_kvbench_test.go:180: Expired 1000 timers in 51.043667ms (51043.67 ns/timer)
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_1000-10         	      21	  52520448 ns/op	  160767 B/op	    2030 allocs/op
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_10000
    timewheel_kvbench_test.go:149: Expired 10000 timers in 53.446667ms (5344.67 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:149: Expired 10000 timers in 53.252ms (5325.20 ns/timer, 50 ticks)
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_10000-10        	      21	  54239887 ns/op	  310541 B/op	      19 allocs/op
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_10000
    timewheel_kvbench_test.go:180: Expired 10000 timers in 65.527292ms (6552.73 ns/timer)
    timewheel_kvbench_test.go:180: Expired 10000 timers in 59.583583ms (5958.36 ns/timer)
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_10000-10        	      18	  60911421 ns/op	 1642391 B/op	   20151 allocs/op
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_100000
    timewheel_kvbench_test.go:149: Expired 100000 timers in 63.087833ms (630.88 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:149: Expired 100000 timers in 61.423583ms (614.24 ns/timer, 50 ticks)
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_100000-10       	      18	  61491208 ns/op	 4496669 B/op	      29 allocs/op
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_100000
    timewheel_kvbench_test.go:180: Expired 100000 timers in 112.584875ms (1125.85 ns/timer)
    timewheel_kvbench_test.go:180: Expired 100000 timers in 84.482333ms (844.82 ns/timer)
    timewheel_kvbench_test.go:180: Expired 100000 timers in 104.541958ms (1045.42 ns/timer)
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_100000-10       	      12	  98369708 ns/op	16182727 B/op	  200580 allocs/op
PASS

goos: darwin
goarch: arm64
pkg: github.com/ankur-anand/taskwheel
cpu: Apple M2 Pro
BenchmarkExpirationOverhead_N
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_1000
    timewheel_kvbench_test.go:147: Expired 1000 timers in 154.917µs (154.92 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 1000 timers in 108.791µs (108.79 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 1000 timers in 53.125µs (53.12 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 1000 timers in 61.875µs (61.88 ns/timer, 50 ticks)
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_1000-10         	   23854	     50677 ns/op	   17528 B/op	      11 allocs/op
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_1000
    timewheel_kvbench_test.go:177: Expired 1000 timers in 51.497083ms (51497.08 ns/timer)
    timewheel_kvbench_test.go:177: Expired 1000 timers in 50.537042ms (50537.04 ns/timer)
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_1000-10         	      22	  52244576 ns/op	  153984 B/op	    2022 allocs/op
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_10000
    timewheel_kvbench_test.go:147: Expired 10000 timers in 1.0655ms (106.55 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 10000 timers in 1.134083ms (113.41 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 10000 timers in 498µs (49.80 ns/timer, 50 ticks)
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_10000-10        	    1491	    721283 ns/op	  310402 B/op	      18 allocs/op
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_10000
    timewheel_kvbench_test.go:177: Expired 10000 timers in 55.532708ms (5553.27 ns/timer)
    timewheel_kvbench_test.go:177: Expired 10000 timers in 57.157041ms (5715.70 ns/timer)
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_10000-10        	      20	  60502898 ns/op	 1678739 B/op	   20146 allocs/op
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_100000
    timewheel_kvbench_test.go:147: Expired 100000 timers in 8.323042ms (83.23 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 100000 timers in 7.079ms (70.79 ns/timer, 50 ticks)
    timewheel_kvbench_test.go:147: Expired 100000 timers in 6.962ms (69.62 ns/timer, 50 ticks)
BenchmarkExpirationOverhead_N/TimingWheel_Expiration_100000-10       	     158	   7599614 ns/op	 4496523 B/op	      28 allocs/op
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_100000
    timewheel_kvbench_test.go:177: Expired 100000 timers in 89.242083ms (892.42 ns/timer)
    timewheel_kvbench_test.go:177: Expired 100000 timers in 103.851042ms (1038.51 ns/timer)
BenchmarkExpirationOverhead_N/NativeTimer_Expiration_100000-10       	      13	  96801853 ns/op	19589807 B/op	  204694 allocs/op
PASS

Process finished with the exit code 0
@ankur-anand ankur-anand merged commit e315d39 into main Jul 29, 2025
2 checks passed
@ankur-anand ankur-anand deleted the benchmark-memory-overhead branch July 29, 2025 17:14
@ankur-anand
Copy link
Owner Author

10,000.

~310 KB TW
~1.6 MB NT.

100,000.

~4.5 MB
~16 MB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants