初级会员
  • 第 22836 位会员
  • saberlong
  • 2018-09-14 13:09:18
  • Offline
  • 1 68 93

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 你可以尝试下golang 1.18的工作区模式。 修改第三方包,以前GOPATH时直接可以。使用module后,需要git的地址和版本。没有工作区模式时,总是要打个版本上去。如果第三方的,要么fork后使用fork版本。或者也可以放到自己私有的git服务上,切换到私有库。都很麻烦,所以加了工作区模式。
  • 你需要补下编译相关的知识。gcc/g++是c/c++的编译工具。编译windows下能运行的需要GNU on Windows。MinGW就是这个东西。而你又要Linux下交叉编译windows的,所以需要在linux使用mingw而不是gcc。CC这个环境变量就是制定c的编译工具。还有个CXX指定c++编译工具
  • 评论了主题 关于go协程池的疑问
    #9 @fichtner 使用GODEBUG进行分析。 比如`GODEBUG="schedtrace=1000" go test` `GODEBUG="scheddetail=1,schedtrace=1000" go test` 你会发现使用sleep时,调度压力其实很低的。每个P每次采样时,调度的协程数比较少。sleep期间不需要p去分配时间片。而调用testFunc时,一直在用cpu计算。所以P对协程的调度压力很大。超过一定量后协程,协程的调度损耗就体现出来了。这时候用线程池,限制数量,反而降低了调度损耗。
  • 评论了主题 关于go协程池的疑问
    #7 @fichtner 我不知道sleep改成递归是怎样一种改法。 凭空猜测,单从递归出发,递归层数多的话,会导致栈扩展。栈扩展会开辟新的空间,将旧有的栈复制过去,然后将新值压栈。
  • 评论了主题 关于go协程池的疑问
    这个问题其实就是有了异步抢占后才优化的,与表面的waitgroup无关。具体看这篇 https://studygolang.com/topics/11155