Skip to content

Instantly share code, notes, and snippets.

@Shaked
Created August 22, 2014 12:40
Show Gist options
  • Save Shaked/e9db077612d8ae22f16f to your computer and use it in GitHub Desktop.
Save Shaked/e9db077612d8ae22f16f to your computer and use it in GitHub Desktop.
maps-vs-slice-vs-array-test.go
package main
import "testing"
var keys = randomKeys()
func BenchmarkDeferRecoverPanicMap(b *testing.B) {
for n := 0; n < b.N; n++ {
deferRecoverPanicMap()
}
}
func BenchmarkDeferRecoverPanicSliceExpandable(b *testing.B) {
for n := 0; n < b.N; n++ {
deferRecoverPanicSliceExpandable()
}
}
func BenchmarkDeferRecoverPanicSliceFixedSize(b *testing.B) {
for n := 0; n < b.N; n++ {
deferRecoverPanicSliceFixedSize()
}
}
func BenchmarkDeferRecoverPanicArray(b *testing.B) {
for n := 0; n < b.N; n++ {
deferRecoverPanicArray()
}
}
func BenchmarkRunMap(b *testing.B) {
for n := 0; n < b.N; n++ {
runMap()
}
}
func BenchmarkRunSliceExpandable(b *testing.B) {
for n := 0; n < b.N; n++ {
runSliceExpandable()
}
}
func BenchmarkRunSliceFixedSize(b *testing.B) {
for n := 0; n < b.N; n++ {
runSliceFixedSize()
}
}
func BenchmarkRunArray(b *testing.B) {
for n := 0; n < b.N; n++ {
runArray()
}
}
func BenchmarkSearchMap(b *testing.B) {
for n := 0; n < b.N; n++ {
searchMap(keys, runMap())
}
}
func BenchmarkSearchSliceExpandable(b *testing.B) {
for n := 0; n < b.N; n++ {
searchSliceExpandable(keys, runSliceExpandable())
}
}
func BenchmarkSearchSliceFixedSize(b *testing.B) {
for n := 0; n < b.N; n++ {
searchSliceFixedSize(keys, runSliceFixedSize())
}
}
func BenchmarkSearchArray(b *testing.B) {
for n := 0; n < b.N; n++ {
searchArray(keys, runArray())
}
}
func BenchmarkDeleteMap(b *testing.B) {
for n := 0; n < b.N; n++ {
deleteMap(runMap())
}
}
func BenchmarkDeleteSlicePreservingOrder(b *testing.B) {
slice := runSliceFixedSize()
for n := 0; n < b.N; n++ {
deleteSlicePreservingOrder(slice)
}
}
func BenchmarkDeleteSliceWithoutPreservingOrder(b *testing.B) {
slice := runSliceFixedSize()
for n := 0; n < b.N; n++ {
deleteSliceWithoutPreservingOrder(slice)
}
}
@Shaked
Copy link
Author

Shaked commented Aug 22, 2014

Results using Go1.3 dawrin/amd64:

map-vs-slice-vs-array $ go test -bench=.
testing: warning: no tests to run
PASS
BenchmarkRunMap  1000000          1053 ns/op
BenchmarkRunSlice   10000000           170 ns/op
BenchmarkRunSliceWithAppend  5000000           730 ns/op
BenchmarkRunArray   10000000           172 ns/op
ok      github.com/Shaked/map-vs-slice-vs-array 9.236s

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