初级会员
  • 第 11412 位会员
  • sevenhe
  • 2017-08-22 15:20:19
  • Offline
  • 20 29

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 评论了主题 go 动态加载插件
    编译时buildmode中使用plugin,虽然仅支持linux系统,但是一般服务器都是linux,这个限制可以当作不存在。 另外很简单的代码也编译成10M,我觉得还ok的,go编译的包的初始大小的确不小,但是不会根据代码量增长而导致大小一直增长的很快,简单来说就是增长缓慢,因为就用到那些源码包。 想要变小,可以在编译时加入编译选项'-s -w',但是不推荐,因为不能gdb和调试了,出错不容易快速定位。
  • gc有自己的触发机制,可以google一下,但是通用的想法是: 不要依赖这个机制释放内存,只当作一个锦上添花的东西,要保证自己的程序稳定运行,要评估一下并发量,限制goroutine的数量。 比如一个goroutine占用2M内存,(2M我觉的不少了,啥都可以算上了),那么4g可用内存的机器,不考虑goroutine调度的情况下,可以支持2000并发数,2000并发每秒的单机我觉得已经是相当不错的业务了,毕竟一般都不可能是单台机器组成服务。
  • 我觉得调度是go去处理的,业务开发不必管这个goroutine是否一直占用着cpu,没使用多核的情况下,看着可能是这个readsomething占用cpu,但是很有可能其他goroutine也得到了cpu的时间片。 回到这个问题,不知道我理解的对不对,也不知道你这个修改全局函数是啥意思,我理解就是相当修改全局的变量,既然readsomething修改了全局函数,那么不如把全局函数赋值给一个变量,然后对变量进行修改,timeout后,这个变量在栈中也被释放了,不会影响全局;假如最后返回结果,可以在返回结果之前,将修改的值重新赋给全局值,也达到了修改的目的。
  • 评论了主题 go 数组应用
    sort.Search,很多操作都在这里sort包里。 ps:这里有点赞的功能么,自己再说一遍好麻烦。
  • 接口加上反射感觉可以的,switch的语法也不错的啊,go反射的源码很多地方也用了switch的,可读性也不错。