Comments (1)
No, the function of gopool is not only reuse the goroutine, but also limit the number of goroutine.
For example in CPU-heavy jobs, to limit the number of goroutines can greatly decrease the need to do context switches, and thus improve the performance.
If you change the DoCopyStack
depth to 10000 in the gopool_test.go
, you may find that gopool is much more faster than native goorutine:
func DoCopyStack(a, b int) int {
if b < 10000 {
return DoCopyStack(0, b+1)
}
return 0
}
result:
goos: darwin
goarch: arm64
pkg: github.com/bytedance/gopkg/util/gopool
BenchmarkPool-10 15 73215625 ns/op 234532 B/op 10071 allocs/op
BenchmarkGo-10 2 579915708 ns/op 921604 B/op 11625 allocs/op
PASS
ok github.com/bytedance/gopkg/util/gopool 3.923s
from gopkg.
Related Issues (20)
- how to pass variable to gopool function? HOT 1
- GoPool's performance in comparison to other goroutine pool implementations HOT 12
- gc tunner not Use in not web application
- Can 'gopool' support the extended use case of 'errgroup'? HOT 1
- gopool的RegisterPool使用不了 HOT 1
- util/gctuner: test fail randomly HOT 2
- Broken change of golang.org/x/sys causes build failed in go1.16 HOT 2
- Go version: bump minimum version to 1.17
- 如何动态修改熔断器配置 HOT 1
- missing comments of fastrand.Float32 / fastrand.Float64 methods
- Reporting a vulnerability
- a little improvement for `cacheRemap16Byte` HOT 2
- closed
- asynccache的OOM问题
- circuitbreaker Panel 接口添加 State 方法
- logger 中default 的 calldepth = 3 会导致输出Log 无法定位实际输出
- 使用zset(skiplist)时,发现其remove,incr, updateScore比想象中的慢非常多 HOT 1
- gopool中的f func()能否新增可入参的 func()类型? HOT 2
- skipmap在32位系统下运行crash HOT 2
- Test HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gopkg.