奇虎360 和 go
尹绵绵, 肖邦也没谱, zypy333 · · 4953 次点击 · · 开始浏览下面是几个要点和我们总结的小技巧:
用长连接(使用连接池)替代短连接,减少通信过程中缓冲区和对象的创建。
适当的使用对象池和内存池,减少GC的负载。
使用任务池,原理是由一组协程作为消费者轮询并执行全局的任务或者来自消息队列的任务——由持有连接的协程作为生产者发送任务,用这种模式取代为每个任务生成一个临时协程。
监视并控制程序中协程的数量。缺乏控制会使GC不堪重负,比如,因为不加控制的接受外部请求而出现的协程数峰值施加在GC上,同时发往内部服务的RPC调用可能阻塞新创建的协程。
在移动网络中,要记得给连接[设置读写超时限制](http://golang.org/pkg/net/#Conn),否则可能导致协程阻塞。在局域网中就要慎重使用此设置,否则会降低RPC通信的效率。
使用Pipeline(在TCP全双工特征下)来增强RPC框架的通信效率。
尹绵绵
翻译于 3天前
0人顶
翻译的不错哦!
到目前为止,我们几乎试遍了所有系统优化的手段。我们还是期盼 GC 团队能带来更多的好消息让我们进一步的从繁重的开发工作中解脱出来。想来,也许有一天我们的这些经验会因为 Go 的持续发展而变得无用武之地。
这也是为什么我要以表达获得了这次出席 Gopher China 的机会的谢意来结束此次分享的原因。这是一个我们去学习,去分享的盛会,也是一个展现 Go 在中国的普及和繁荣的契机。在奇虎内部有许多其他的团队开始去了解 Go,或者已经在试着使用 Go。
在可预见的将来,我相信中国会有更多的互联网公司加入我们的行列,用 Go 来重新创建他们的系统,而 Go 开发团队的成果会使更多的开发者和公司收益。
尹绵绵
翻译于 2天前
0人顶
翻译的不错哦!
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
下面是几个要点和我们总结的小技巧:
用长连接(使用连接池)替代短连接,减少通信过程中缓冲区和对象的创建。
适当的使用对象池和内存池,减少GC的负载。
使用任务池,原理是由一组协程作为消费者轮询并执行全局的任务或者来自消息队列的任务——由持有连接的协程作为生产者发送任务,用这种模式取代为每个任务生成一个临时协程。
监视并控制程序中协程的数量。缺乏控制会使GC不堪重负,比如,因为不加控制的接受外部请求而出现的协程数峰值施加在GC上,同时发往内部服务的RPC调用可能阻塞新创建的协程。
在移动网络中,要记得给连接[设置读写超时限制](http://golang.org/pkg/net/#Conn),否则可能导致协程阻塞。在局域网中就要慎重使用此设置,否则会降低RPC通信的效率。
使用Pipeline(在TCP全双工特征下)来增强RPC框架的通信效率。
尹绵绵
翻译于 3天前
0人顶
翻译的不错哦!
到目前为止,我们几乎试遍了所有系统优化的手段。我们还是期盼 GC 团队能带来更多的好消息让我们进一步的从繁重的开发工作中解脱出来。想来,也许有一天我们的这些经验会因为 Go 的持续发展而变得无用武之地。
这也是为什么我要以表达获得了这次出席 Gopher China 的机会的谢意来结束此次分享的原因。这是一个我们去学习,去分享的盛会,也是一个展现 Go 在中国的普及和繁荣的契机。在奇虎内部有许多其他的团队开始去了解 Go,或者已经在试着使用 Go。
在可预见的将来,我相信中国会有更多的互联网公司加入我们的行列,用 Go 来重新创建他们的系统,而 Go 开发团队的成果会使更多的开发者和公司收益。
尹绵绵
翻译于 2天前
0人顶
翻译的不错哦!
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们