Skip to content

stefanovazzocell/GoDojo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Dojo

This is a dojo to experiment with and learn from Go.

Snippets

Here I might add little code snippets as I experiment with things.

Benchmarks

Run benchmarks with make bench. These benchmarks will run a series of tests to answer the question "What is the fastest way to do X in Go?"

Results

Last update: February 28, 2026 Go version: 1.26.0

Running tests...
go test -run=Test. -race ./bench
ok  	github.com/stefanovazzocell/GoDojo/bench	1.010s
Running benchmarks...
go test -run=Bench -bench=. -benchmem ./bench
goos: linux
goarch: amd64
pkg: github.com/stefanovazzocell/GoDojo/bench
cpu: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
BenchmarkControlFlowSimple/switch-24         	1000000000	         0.2479 ns/op	       0 B/op	       0 allocs/op
BenchmarkControlFlowSimple/if-24             	1000000000	         0.2471 ns/op	       0 B/op	       0 allocs/op
BenchmarkControlFlowSimple/ifElse-24         	1000000000	         0.2470 ns/op	       0 B/op	       0 allocs/op
BenchmarkControlFlowComplex/switch-24        	1000000000	         0.8440 ns/op	       0 B/op	       0 allocs/op
BenchmarkControlFlowComplex/if-24            	1000000000	         0.4989 ns/op	       0 B/op	       0 allocs/op
BenchmarkControlFlowComplex/ifElse-24        	1000000000	         0.6287 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/rangeKey-24          	    5694	    206619 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/rangeKeyReuse-24     	    5845	    204460 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/rangeVal-24          	    5727	    206583 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/rangeValReuse-24     	    5740	    216082 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/len-24               	    5875	    204970 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/lenOptimizedA-24     	    5202	    204759 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/lenOptimizedB-24     	    5790	    204378 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/lenRange-24          	    5767	    205122 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopValue/lenRangeReuse-24     	    5616	    204434 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/rangeKey-24          	    5821	    208018 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/rangeKeyReuse-24     	    5778	    208347 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/rangeVal-24          	    5648	    207666 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/rangeValReuse-24     	    5773	    208076 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/rangeBlank-24        	    5774	    207725 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/len-24               	    5773	    207481 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/lenOptimizedA-24     	    5764	    207889 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/lenOptimizedB-24     	    5742	    208919 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceLoopCount/lenRange-24          	    5769	    207891 ns/op	       0 B/op	       0 allocs/op
BenchmarkIntToString/Sprintf-24              	29775320	        43.71 ns/op	      16 B/op	       2 allocs/op
BenchmarkIntToString/strconvItoa-24          	99323926	        12.80 ns/op	       7 B/op	       0 allocs/op
BenchmarkIntToString/strconvFormatInt-24     	90850278	        12.79 ns/op	       7 B/op	       0 allocs/op
BenchmarkLocks/Mutex/Sequential-24           	140501044	         8.452 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Mutex/Parallel-24             	20320502	        63.80 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/RWMutex/Sequential-24         	59677722	        18.18 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/RWMutex/Parallel-24           	13857146	        88.61 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/RWMutexRead/Sequential-24     	139917187	         8.596 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/RWMutexRead/Parallel-24       	49232934	        26.03 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Bool/Sequential-24            	136770542	         8.719 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Bool/Parallel-24              	 3491707	       347.7 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/int32/Sequential-24           	136890819	         8.818 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/int32/Parallel-24             	 3899456	       349.5 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/int64/Sequential-24           	139435521	         8.534 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/int64/Parallel-24             	 3524259	       349.0 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Uint32/Sequential-24          	137480391	         8.759 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Uint32/Parallel-24            	 3457902	       345.1 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Uint64/Sequential-24          	140398618	         8.669 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocks/Uint64/Parallel-24            	 3963360	       351.3 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Mutex/Sequential-24     	144781120	         8.322 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Mutex/Parallel-24       	18950785	        65.54 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/RWMutex/Sequential-24   	67025634	        17.33 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/RWMutex/Parallel-24     	13789954	        86.20 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/RWMutexRead/Sequential-24         	144716866	         8.387 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/RWMutexRead/Parallel-24           	46299986	        26.18 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Bool/Sequential-24                	145020438	         8.101 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Bool/Parallel-24                  	 3831898	       305.0 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/int32/Sequential-24               	147355602	         8.121 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/int32/Parallel-24                 	 3890670	       304.6 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/int64/Sequential-24               	148110147	         8.094 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/int64/Parallel-24                 	 3832327	       307.9 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Uint32/Sequential-24              	148585573	         8.140 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Uint32/Parallel-24                	 4052112	       302.9 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Uint64/Sequential-24              	149037546	         8.124 ns/op	       0 B/op	       0 allocs/op
BenchmarkLocksNoWork/Uint64/Parallel-24                	 3853905	       310.8 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len10/rangeKey-24              	286965804	         4.422 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len10/rangeVal-24              	472132285	         2.318 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len10/len-24                   	699778526	         1.795 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len10/lenOptimizedA-24         	671535657	         1.780 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len10/lenOptimizedB-24         	667911943	         1.830 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len10/stringsReader-24         	340012587	         3.541 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len1000000/rangeKey-24         	    1144	   1050276 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len1000000/rangeVal-24         	    1239	    948952 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len1000000/len-24              	    5779	    204576 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len1000000/lenOptimizedA-24    	    5864	    205773 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len1000000/lenOptimizedB-24    	    5869	    204362 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringCharLoop/len1000000/stringsReader-24    	    4644	    270387 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandom64Bytes/random64SliceBuffer-24          	 1505371	       807.5 ns/op	      64 B/op	       1 allocs/op
BenchmarkRandom64Bytes/randomSlice64Make-24            	 1568844	       775.1 ns/op	      64 B/op	       1 allocs/op
BenchmarkRandom64Bytes/random64SliceAppend-24          	 1483329	       808.0 ns/op	      64 B/op	       1 allocs/op
BenchmarkRandom64Bytes/random64SliceReader-24          	24664242	        47.77 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandom64Bytes/random64Array-24                	 1673187	       720.4 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandom64Bytes/random64ArrayExpanded-24        	 1652365	       724.8 ns/op	       0 B/op	       0 allocs/op
BenchmarkSha256three/small/manyWrites-24               	17424411	        70.72 ns/op	      32 B/op	       1 allocs/op
BenchmarkSha256three/small/append-24                   	11672538	       139.1 ns/op	     160 B/op	       3 allocs/op
BenchmarkSha256three/small/buffer-24                   	10445715	       115.9 ns/op	      96 B/op	       2 allocs/op
BenchmarkSha256three/small/preprocess-24               	15830134	        74.23 ns/op	      32 B/op	       1 allocs/op
BenchmarkSha256three/large/manyWrites-24               	 1390639	       882.1 ns/op	      32 B/op	       1 allocs/op
BenchmarkSha256three/large/append-24                   	  752101	      1612 ns/op	    3360 B/op	       3 allocs/op
BenchmarkSha256three/large/buffer-24                   	  750860	      1436 ns/op	    1824 B/op	       2 allocs/op
BenchmarkSha256three/large/preprocess-24               	 1440596	       829.4 ns/op	      32 B/op	       1 allocs/op
BenchmarkSliceAppendOne/simple-24                      	31057586	        37.09 ns/op	      96 B/op	       1 allocs/op
BenchmarkSliceAppendOne/appendEachWithHint-24          	1000000000	         0.2079 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceAppendOne/appendSliceWithHint-24         	232369872	         5.134 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceAppendOne/appendTogetherWithHint-24      	1000000000	         0.2283 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceAppendOne/preSized-24                    	1000000000	         0.2086 ns/op	       0 B/op	       0 allocs/op
BenchmarkSliceAppendOne/preSizedAll-24                 	1000000000	         0.2072 ns/op	       0 B/op	       0 allocs/op
BenchmarkStrHash-24                                    	859419766	         1.365 ns/op	       0 B/op	       0 allocs/op
BenchmarkHashFnv-24                                    	738147986	         1.834 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringBufferReader/bufio.Reader-24            	  988342	      1221 ns/op	    5768 B/op	       8 allocs/op
BenchmarkStringBufferReader/native-24                  	100000000	        10.64 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringStartWithShort/stringsHasPrefix-24      	800339433	         1.497 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringStartWithShort/LoopStartsWith-24        	277420131	         4.018 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringStartWithLong/stringsHasPrefix-24       	558754718	         2.163 ns/op	       0 B/op	       0 allocs/op
BenchmarkStringStartWithLong/LoopStartsWith-24         	18823412	        61.55 ns/op	       0 B/op	       0 allocs/op
BenchmarkSwap/uint8/inline-24                          	1000000000	         0.2110 ns/op	       0 B/op	       0 allocs/op
BenchmarkSwap/uint8/tmp-24                             	1000000000	         0.2078 ns/op	       0 B/op	       0 allocs/op
BenchmarkSwap/uint8/xor-24                             	1000000000	         0.2037 ns/op	       0 B/op	       0 allocs/op
BenchmarkSwap/int/inline-24                            	1000000000	         0.2100 ns/op	       0 B/op	       0 allocs/op
BenchmarkSwap/int/tmp-24                               	1000000000	         0.2041 ns/op	       0 B/op	       0 allocs/op
BenchmarkSwap/int/xor-24                               	1000000000	         0.2043 ns/op	       0 B/op	       0 allocs/op
BenchmarkTextConcatSmall/Sprint-24                     	23622180	        52.30 ns/op	      16 B/op	       1 allocs/op
BenchmarkTextConcatSmall/Plus-24                       	1000000000	         0.2077 ns/op	       0 B/op	       0 allocs/op
BenchmarkTextConcatSmall/Builder-24                    	38473149	        31.06 ns/op	      24 B/op	       2 allocs/op
BenchmarkTextConcatSmall/Join-24                       	42611030	        26.58 ns/op	      16 B/op	       1 allocs/op
BenchmarkTextConcatLarge/Plus-24                       	  139604	      8163 ns/op	   31728 B/op	      99 allocs/op
BenchmarkTextConcatLarge/Builder-24                    	 2174928	       551.8 ns/op	    1912 B/op	       8 allocs/op
BenchmarkTextConcatLarge/BuilderPrealloc-24            	 5802667	       208.5 ns/op	     640 B/op	       1 allocs/op
BenchmarkTextConcatLarge/Join-24                       	  729019	      1522 ns/op	    5104 B/op	       9 allocs/op
BenchmarkTextConcatLarge/JoinReserved-24               	 1789850	       604.7 ns/op	     640 B/op	       1 allocs/op
BenchmarkTextConcatLarge/JoinPrealloc-24               	 2551195	       546.4 ns/op	     640 B/op	       1 allocs/op
BenchmarkValidateZeroBits/binaryBits-24                	1000000000	         1.093 ns/op	       0 B/op	       0 allocs/op
BenchmarkValidateZeroBits/mask-24                      	1000000000	         1.118 ns/op	       0 B/op	       0 allocs/op
BenchmarkValidateZeroBits/loop-24                      	717894930	         1.646 ns/op	       0 B/op	       0 allocs/op
PASS
ok  	github.com/stefanovazzocell/GoDojo/bench	157.933s

About

A dojo for Go experiments

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors