公司要重构一个统计项目,统计部分要提供一个web收数的接口,因为统计系统的日志量十分大,所以对web服务的性能要求很严格,在技术选择的背景下做了golang和java的性能对比.
测试环境:
mac pro13.4.0
golang:go version go1.3.1 darwin/amd64
java: 1.7.0_71,基于tomcat容器
测试工具
apache Ab工具:http://httpd.apache.org/docs/2.2/programs/ab.html
测试流程
golang使用源生的net/http服务搭建http项目,接口输出hello world
java使用servlet 搭建web项目,接口同样输出hello world
ab工具使用 ab -c 100 -n 1000 http://127.0.0.1/track_proxy表示模拟100个客户端并发发送共1000个请求
测试结果
GOMAXPROCS=1(括号内为GOMAXPROCS=4 )
从测试结果来看,GOMAXPROCS = 1时,golang的http性能比java略微有一些优势,GOMAXPROCS = 4时,golang的http性能稍微有所提升,总体来说golang表现胜出,所以,还是用go吧~~