Guest User

Untitled

a guest
Oct 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "sync"
  5. "sync/atomic"
  6. "testing"
  7. )
  8.  
  9. func main() {
  10. // Parallel benchmark for text/template.Template.Execute on a single object.
  11. r := testing.Benchmark(func(b *testing.B) {
  12. var (
  13. m sync.Mutex
  14. level int
  15. res int
  16. )
  17.  
  18. b.RunParallel(func(pb *testing.PB) {
  19. for pb.Next() {
  20. m.Lock()
  21. res = level
  22. m.Unlock()
  23. }
  24. })
  25. })
  26.  
  27. println("use lock", r.String())
  28.  
  29. r = testing.Benchmark(func(b *testing.B) {
  30. var (
  31. level int32
  32. res int32
  33. )
  34.  
  35. b.RunParallel(func(pb *testing.PB) {
  36. for pb.Next() {
  37. res = atomic.LoadInt32(&level)
  38. }
  39. })
  40. })
  41.  
  42. println("use atomic", r.String())
  43.  
  44. }
Add Comment
Please, Sign In to add comment