提高 Golang API 請求性能

提高 golang api 請求性能

項目

我最近開始開發加密貨幣交換聚合器?;旧衔視蛞欢巡煌慕灰姿l送請求并比較價格。這必須盡快完成。在這篇文章中,我將展示一些為了顯著提高我的表現而進行的調整。

但是請記住,我不是專家(尤其是圍棋專家),我只是分享我自己個人項目的發現。

改進

這些改進按運行時最大改進的順序排列。

1. 使用 goroutine

在任何 go 程序中,goroutine 對于速度都是至關重要的。我最大的提升是同時發送請求。由于我需要連接 12 個不同的交易所,因此同時發送這些請求將我的運行時間從大約 24 秒減少到了大約 3 秒。

立即學習“go語言免費學習筆記(深入)”;

goroutines 非常棒并且非常容易使用。您應該盡可能包含它們。但始終要小心數據爭用

2. 升級json庫

我將 encoding/json 換成了 github.com/json-iterator/go。jsoniter 是一個快速 json 處理庫,可以作為標準庫的直接替代品,所以我不必更改任何代碼,只需圖書館開關。

基準測試結果

為了衡量性能改進,我運行了一些基準測試來比較encoding/json 和 jsoniter。以下是結果摘要:

goos: linux
goarch: amd64
pkg: apispeedimprove
cpu: amd ryzen 5 7640u w/ radeon 760m graphics      
benchmarkencodingjson-12 140383 7381 ns/op
benchmarkjsoniter-12 974605 1217 ns/op
pass
ok apispeedimprove 3.216s

關注:愛掏網

所以,jsoniter 比標準庫快大約 6 倍。

3. 重用 http 處理程序

我開始重用 http 處理程序,而不是為每個請求創建新的處理程序。通過設置一次處理程序并重復使用它,我減少了為每個請求創建新處理程序的開銷。

基準測試結果

以下是比較重用處理程序與為每個請求創建新處理程序的基準測試結果:

goos: linux
goarch: amd64
pkg: apiSpeedImprove/httpReuse
cpu: AMD Ryzen 5 7640U w/ Radeon 760M Graphics      
BenchmarkReusedHandler-12 2179 505189 ns/op
BenchmarkNewHandlerPerRequest-12 2341 507525 ns/op
PASS
ok apiSpeedImprove/httpReuse 7.270s

關注:愛掏網

與為每個請求創建新的處理程序相比,重用 http 處理程序可以略微提升性能。

結論

通過這些調整,我成功地將收集所有信息所需的時間從最初的 24 秒縮短到大約 2 秒。相當扎實的進步!

如果您對我的基準測試代碼感興趣,可以在這里找到

如果您喜歡這篇文章并想支持我的工作,您可以在這里捐款。

以上就是提高 Golang API 請求性能的詳細內容,更多請關注愛掏網 - it200.com其它相關文章!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 丰满老熟好大bbb| aaa毛片视频免费观看| 日韩国产成人精品视频人| 亚洲精品欧美综合| 美女扒开尿口让男人桶进| 国产无遮挡又黄又爽网站| 99热精品国产三级在线观看| 成年人影院在线观看| 久久精品国产久精国产| 欧美成人片一区二区三区| 伊人色综合一区二区三区| 美妇浑圆硕大高耸美乳| 国产在线精品99一卡2卡| 你懂的免费视频| 国产青草视频在线观看| t66y最新地址一地址二地址三 | 1000部又爽又黄的做黄禁片| 女人双腿搬开让男人桶| 中文字幕色综合久久| 日韩在线中文字幕| 亚洲av无码一区二区乱子伦as| 欧美精品亚洲精品日韩专区va| 免费看片A级毛片免费看| 美女露胸视频网站| 国产乱人激情H在线观看| 91成人午夜性a一级毛片| 国产精品久久99| 2345成人高清毛片| 国内精品影院久久久久| tube6xxxxxhd丶中国| 思思久久99热只有频精品66| 中文字幕高清有码在线中字| 日本特黄特色特爽大片老鸭| 乱人伦人妻中文字幕在线入口| 欧美丰满熟妇xx猛交| 亚洲国产精品人久久| 欧美激情一区二区三区蜜桃视频| 亚洲综合AV在线在线播放| 男人桶女人叽叽| 免费一级做a爰片性色毛片| 精品久久久久久亚洲精品|