optimization

This commit is contained in:
Andy Pan 2018-05-19 16:10:38 +08:00
parent 04e6d942d4
commit 0c7ba6d3ac
3 changed files with 11 additions and 10 deletions

View File

@ -1,8 +1,6 @@
package ants package ants
import "math" const DEFAULT_POOL_SIZE = 1000
const DEFAULT_POOL_SIZE = math.MaxInt32
var defaultPool = NewPool(DEFAULT_POOL_SIZE) var defaultPool = NewPool(DEFAULT_POOL_SIZE)
@ -21,4 +19,3 @@ func Cap() int {
func Free() int { func Free() int {
return defaultPool.Free() return defaultPool.Free()
} }

View File

@ -5,16 +5,20 @@ import (
"github.com/panjf2000/ants" "github.com/panjf2000/ants"
) )
var size = 1000
func BenchmarkPoolGroutine(b *testing.B) { func BenchmarkPoolGroutine(b *testing.B) {
p := ants.NewPool(size)
b.ResetTimer()
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
p.Push(demoFunc) ants.Push(demoFunc)
} }
} }
//func BenchmarkPoolGroutine(b *testing.B) {
// p := ants.NewPool(size)
// b.ResetTimer()
// for i := 0; i < b.N; i++ {
// p.Push(demoFunc)
// }
//}
func BenchmarkGoroutine(b *testing.B) { func BenchmarkGoroutine(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
go demoFunc() go demoFunc()

View File

@ -22,7 +22,7 @@ type Pool struct {
func NewPool(size int) *Pool { func NewPool(size int) *Pool {
p := &Pool{ p := &Pool{
capacity: int32(size), capacity: int32(size),
tasks: make(chan f, 1000), tasks: make(chan f, size),
//workers: &sync.Pool{New: func() interface{} { return &Worker{} }}, //workers: &sync.Pool{New: func() interface{} { return &Worker{} }},
workers: make(chan *Worker, size), workers: make(chan *Worker, size),
destroy: make(chan sig, runtime.GOMAXPROCS(-1)), destroy: make(chan sig, runtime.GOMAXPROCS(-1)),