go语言很给力呀

javatgo · · 3552 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

最近因为项目需要,所以写了一个id生成器,于是当时想为了省事就用go语言来写得了,于是花了大概半天的时间写了300多行码,完成之后开始测性能。一开始是在自己的虚拟机上测的,客户端是用php的,结果发现php在单进程环境下只能跑30个请求,这个结果其实也不意外,因为这根本就不是服务器的问题,而是php本身的性能不行,所以压力压不上去。于是用pcntl_fork出多个进程来,每个进程跑一些请求,最后在主进程里计算总的时间,结果发现1s最多处理1000-2000之间,并且随着并发数增多,性能下降很快。这个结果让人比较意外,原以为go语言的性能会好很多。 后来仔细想了想,突然想起来有个参数可以设置runtime.MAXPROC,用于设置可以使用的cpu数目。于是在设置了这个参数之后又开始测试,一开始性能果然比原来好了很多,可以到4000多个,但是这个时候看cpu使用率,依然不是很高,大约只有60%。于是想到可能是因为测试用的是虚拟机,它本身运行于单核之上,压力根本上不去。最终将服务器放在一个机器上,测试脚本放在另一台上,用MAXPROC=4来进行测试,结果每s钟可以处理大约8000这个请求。这个结果很令人欣喜,只用了300行码,其中还包括了业务逻辑,说白了实际的网络部分可能只有几十行而已,就能达到这样的效果,实在是相当不错了。

看来以后的服务器代码编写,完全可以使用go语言来编写了。


有疑问加站长微信联系(非本文作者)

本文来自:ITEYE博客

感谢作者:javatgo

查看原文:go语言很给力呀

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3552 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传