Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "sync"
- "sync/atomic"
- "testing"
- )
- func main() {
- // Parallel benchmark for text/template.Template.Execute on a single object.
- r := testing.Benchmark(func(b *testing.B) {
- var (
- m sync.Mutex
- level int
- res int
- )
- b.RunParallel(func(pb *testing.PB) {
- for pb.Next() {
- m.Lock()
- res = level
- m.Unlock()
- }
- })
- })
- println("use lock", r.String())
- r = testing.Benchmark(func(b *testing.B) {
- var (
- level int32
- res int32
- )
- b.RunParallel(func(pb *testing.PB) {
- for pb.Next() {
- res = atomic.LoadInt32(&level)
- }
- })
- })
- println("use atomic", r.String())
- }
Add Comment
Please, Sign In to add comment