Last active
January 14, 2017 12:20
-
-
Save inotnako/e2b36ae55e46d5f48bef3e67daab0394 to your computer and use it in GitHub Desktop.
benchmark of channels go1.8rc1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package benchs | |
import ( | |
"runtime" | |
"sync" | |
"testing" | |
) | |
func Benchmark_Channel_Parallel(b *testing.B) { | |
cpu := runtime.GOMAXPROCS(-1) | |
trafic := make(chan *struct{}, cpu) | |
wg := &sync.WaitGroup{} | |
wg.Add(cpu) | |
for i := 0; i < cpu; i++ { | |
go func() { | |
wg.Done() | |
for _ = range trafic { | |
} | |
}() | |
} | |
obj := &struct{}{} | |
wg.Wait() | |
b.ResetTimer() | |
b.RunParallel(func(pb *testing.PB) { | |
for pb.Next() { | |
trafic <- obj | |
} | |
}) | |
close(trafic) | |
} | |
func Benchmark_Channel(b *testing.B) { | |
cpu := runtime.GOMAXPROCS(-1) | |
trafic := make(chan *struct{}, cpu) | |
wg := &sync.WaitGroup{} | |
wg.Add(cpu) | |
for i := 0; i < cpu; i++ { | |
go func() { | |
wg.Done() | |
for _ = range trafic { | |
} | |
}() | |
} | |
obj := &struct{}{} | |
wg.Wait() | |
b.ResetTimer() | |
for i := 0; i < b.N; i++ { | |
trafic <- obj | |
} | |
close(trafic) | |
} | |
/* | |
MacBook Pro 4 CPU 2,4 GHz Intel Core i5 4 ГБ 1600 МГц DDR3 | |
$ go test -bench=. -run=. -benchtime=1s -benchmem ./benchs/ -cpu=4,8,16,32 -count=10 | |
Benchmark_Channel_Parallel-4 5000000 327 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 366 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 365 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 319 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 366 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 354 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 367 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 367 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 337 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-4 5000000 366 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 308 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 308 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 310 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 307 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 308 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 310 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 309 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 312 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 308 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-8 5000000 308 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 255 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 262 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 262 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 264 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 261 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 261 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 254 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 263 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 263 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-16 5000000 261 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 226 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 228 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 227 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 221 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 233 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 221 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 223 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 230 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 227 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel_Parallel-32 10000000 225 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 10000000 236 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 5000000 213 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 5000000 354 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 10000000 248 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 5000000 345 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 5000000 347 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 5000000 251 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 10000000 233 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 10000000 283 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-4 10000000 244 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 251 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 10000000 236 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 248 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 10000000 271 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 269 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 258 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 282 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 259 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 298 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-8 5000000 288 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 346 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 358 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 336 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 287 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 343 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 342 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 323 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 360 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 349 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-16 5000000 350 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 492 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 427 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 451 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 386 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 461 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 500 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 501 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 533 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 507 ns/op 0 B/op 0 allocs/op | |
Benchmark_Channel-32 3000000 492 ns/op 0 B/op 0 allocs/op | |
PASS | |
ok github.com/antonikonovalov/nn/benchs 161.638s | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment