| 1234567891011121314151617181920212223242526272829303132333435 |
- package main
- import (
- "fmt"
- "testing"
- )
- func main() {
- fmt.Println(" sync", testing.Benchmark(BenchmarkChannelSync).String())
- fmt.Println("buffered", testing.Benchmark(BenchmarkChannelBuffered).String())
- }
- func BenchmarkChannelSync(b *testing.B) {
- ch := make(chan int)
- go func() {
- for i := 0; i < b.N; i++ {
- ch <- i
- }
- close(ch)
- }()
- for range ch {
- }
- }
- func BenchmarkChannelBuffered(b *testing.B) {
- ch := make(chan int, 128)
- go func() {
- for i := 0; i < b.N; i++ {
- ch <- i
- }
- close(ch)
- }()
- for range ch {
- }
- }
|