日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ngx_lua与go高并发性能对比

發布時間:2024/9/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ngx_lua与go高并发性能对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nginx在處理高并發能力上非常出色,而go作為新時代互聯網語言,在設計之初就為實現高并發。

ngx_lua由nginx來處理網絡事件,并使用協程來實現非阻塞,從而實現高并發。 go語言級別提供非阻塞的api,同樣使用協程來提供高并發處理。

我們來測試對比一下兩者的性能。

ngx_lua:Tengine/1.4.3+luajit+ngx_lua go:go1.0.3

分別實現512字節的內容的輸出,對比在不同并發下的qps。

測試機器:

core Intel(R) Xeon(R) CPU E5520 @ 2.27GHz Linux localhost 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

使用ab進行測試,測試結果如下:

短連接 100 200 500 1000 2000
ngx_lua qps:17329 us:2.6% sy:2.2% 17744 16443 15852 13589
go qps:16538 us:9.1% sy:3.6% 16546 15988 15032 13757
長連接 100 200 500
ngx_lua qps:72274 us:13.8% sy:8.5 61204 61983
go qps:39072 us:29% sy:15% 38688 38238

從結果中,可以看出短連接時,兩者qps相差不大,而長連接時,兩者相差較大。go的cpu占用比ngx_lua要高不少。另外,go在并發數增加的情況下,性能依然出色。

相關測試代碼。

lua代碼:

ngx.print("aaaaa...512...aaa")

go 代碼:

package main import ("net/http""log""fmt""runtime" ) func handler512(w http.ResponseWriter, r *http.Request) {w.Header().Set("Connection", "keep-alive")a := []byte("aaaaa...512...aaa")w.Header().Set("Content-Length", fmt.Sprintf("%d", len(a)))w.Write(a) } func main() {runtime.GOMAXPROCS(runtime.NumCPU())http.HandleFunc("/512b", handler512)log.Fatal(http.ListenAndServe(":8080", nil)) }

來源:http://ju.outofmemory.cn/entry/7199

總結

以上是生活随笔為你收集整理的ngx_lua与go高并发性能对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。