公司要重構一個統計項目,統計部分要提供一個web收數的接口,由於統計系統的日誌量十分大,因此對web服務的性能要求很嚴格,在技術選擇的背景下作了golang和java的性能對比.
html
測試環境:java
mac pro 13.4.0golang
golang: go version go1.3.1 darwin/amd64web
java: 1.7.0_71, 基於tomcat容器apache
測試工具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吧~~