Skip to content

Microbenchmarks

Marcelo Cantos edited this page Nov 19, 2019 · 3 revisions

Trying various bucket sizes

As at de7b14b.

2 (hamtBits = 1)

BenchmarkInsertFrozen-8           	  739951	      3104 ns/op	     877 B/op	      27 allocs/op
BenchmarkInsertFrozen1M-8         	  413694	      3543 ns/op	     946 B/op	      29 allocs/op

4 (hamtBits = 2)

BenchmarkInsertFrozen-8           	 1000000	      2299 ns/op	     850 B/op	      16 allocs/op
BenchmarkInsertFrozen1M-8         	  537626	      2377 ns/op	     906 B/op	      17 allocs/op

8 (hamtBits = 3)

BenchmarkInsertFrozen-8           	 1000000	      1881 ns/op	    1084 B/op	      12 allocs/op
BenchmarkInsertFrozen1M-8         	  791137	      2221 ns/op	    1159 B/op	      12 allocs/op

16 (hamtBits = 4)

BenchmarkInsertFrozen-8           	 1000000	      2141 ns/op	    1577 B/op	      10 allocs/op
BenchmarkInsertFrozen1M-8         	  687364	      2523 ns/op	    1725 B/op	      11 allocs/op

Comparing frozen (8 buckets) with other approaches

BenchmarkInsertMapInt-8           	 5597262	       226 ns/op	      64 B/op	       0 allocs/op
BenchmarkInsertMapInt1M-8         	 5198156	       217 ns/op	      54 B/op	       0 allocs/op
BenchmarkInsertMapInterface-8     	 2065854	       595 ns/op	     173 B/op	       2 allocs/op
BenchmarkInsertMapInterface1M-8   	 2857795	       682 ns/op	     186 B/op	       2 allocs/op
BenchmarkInsertFrozen-8           	 1000000	      1919 ns/op	    1084 B/op	      12 allocs/op
BenchmarkInsertFrozen1M-8         	  823494	      2523 ns/op	    1160 B/op	      12 allocs/op
BenchmarkInsertMediocre-8         	   10000	    103513 ns/op	   50270 B/op	     318 allocs/op
BenchmarkInsertMediocre10k-8      	    8804	    339940 ns/op	  144290 B/op	     906 allocs/op