|
|
- package benchmarks
-
- import (
- "sync/atomic"
- "testing"
- "unsafe"
- )
-
- func BenchmarkAtomicUintPtr(b *testing.B) {
- b.StopTimer()
- pointers := make([]uintptr, 1000)
- b.Log(unsafe.Sizeof(pointers[0]))
- b.StartTimer()
-
- for j := 0; j < b.N; j++ {
- atomic.StoreUintptr(&pointers[j%1000], uintptr(j))
- }
- }
-
- func BenchmarkAtomicPointer(b *testing.B) {
- b.StopTimer()
- pointers := make([]unsafe.Pointer, 1000)
- b.Log(unsafe.Sizeof(pointers[0]))
- b.StartTimer()
-
- for j := 0; j < b.N; j++ {
- atomic.StorePointer(&pointers[j%1000], unsafe.Pointer(uintptr(j)))
- }
- }
|