Guest User

Untitled

a guest
Jul 16th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. package main
  2.  
  3. import "testing"
  4.  
  5. /**
  6. go test -v -bench=.
  7. goos: linux
  8. goarch: amd64
  9. pkg: github.com/ggirtsou/benchmark
  10. BenchmarkSliceLookup-8 200000 6651 ns/op
  11. BenchmarkMapLookup-8 200000000 7.08 ns/op
  12. PASS
  13. ok github.com/ggirtsou/benchmark 4.774s
  14. */
  15.  
  16. // omg please don't do this in production
  17. func BenchmarkSliceLookup(b *testing.B) {
  18. var data []int
  19. for i := 0; i < 1000000; i++ {
  20. data = append(data, i)
  21. }
  22.  
  23. for n := 0; n < b.N; n++ {
  24. for _, v := range data {
  25. if v == 12345 {
  26. break
  27. }
  28. }
  29. }
  30. }
  31.  
  32. func BenchmarkMapLookup(b *testing.B) {
  33. var s struct{}
  34. data := make(map[int]struct{})
  35. for i := 0; i < 1000000; i++ {
  36. data[i] = s
  37. }
  38.  
  39. for n := 0; n < b.N; n++ {
  40. _ = data[12345]
  41. }
  42. }
Add Comment
Please, Sign In to add comment