gf/internal/rwmutex/rwmutex_z_bench_test.go

47 lines
911 B
Go
Raw Normal View History

2021-01-17 21:46:25 +08:00
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
2019-02-02 15:16:45 +08:00
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
2019-02-02 15:16:45 +08:00
package rwmutex_test
import (
2019-06-19 09:06:52 +08:00
"testing"
2019-07-29 21:01:19 +08:00
"github.com/gogf/gf/internal/rwmutex"
2019-02-02 15:16:45 +08:00
)
var (
safeLock = rwmutex.New(true)
unsafeLock = rwmutex.New(false)
2019-02-02 15:16:45 +08:00
)
func Benchmark_Safe_LockUnlock(b *testing.B) {
2019-06-19 09:06:52 +08:00
for i := 0; i < b.N; i++ {
safeLock.Lock()
safeLock.Unlock()
}
2019-02-02 15:16:45 +08:00
}
func Benchmark_Safe_RLockRUnlock(b *testing.B) {
2019-06-19 09:06:52 +08:00
for i := 0; i < b.N; i++ {
safeLock.RLock()
safeLock.RUnlock()
}
2019-02-02 15:16:45 +08:00
}
func Benchmark_UnSafe_LockUnlock(b *testing.B) {
2019-06-19 09:06:52 +08:00
for i := 0; i < b.N; i++ {
unsafeLock.Lock()
unsafeLock.Unlock()
}
2019-02-02 15:16:45 +08:00
}
func Benchmark_UnSafe_RLockRUnlock(b *testing.B) {
2019-06-19 09:06:52 +08:00
for i := 0; i < b.N; i++ {
unsafeLock.RLock()
unsafeLock.RUnlock()
}
}