成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Uber 使用 Go 的規(guī)模這么大?!都自己定制的 Go 編譯器了

開發(fā) 后端
Uber 有數(shù)千個后端服務(wù)是使用 Go 實現(xiàn)的,它們運行在數(shù)百萬個 CPU 內(nèi)核上。因此,對于 Uber 來說,詳細準確掌握 CPU 瓶頸至關(guān)重要。這不僅為了減少服務(wù)延遲,同時也能提高計算機運行效率。

 [[399361]]

大家好,我是站長 polarisxu。

今天看到 Uber 使用 Go 的情況,挺吃驚的,給大家分享下情況。

01 Uber 使用 Go 的情況

Uber 有數(shù)千個后端服務(wù)是使用 Go 實現(xiàn)的,它們運行在數(shù)百萬個 CPU 內(nèi)核上。因此,對于 Uber 來說,詳細準確掌握 CPU 瓶頸至關(guān)重要。這不僅為了減少服務(wù)延遲,同時也能提高計算機運行效率。Uber 這個量級的規(guī)模,要求對代碼和微觀結(jié)構(gòu)的影響有深入的了解。

02 定制 Go 編譯器

其實說定制 Go 編譯器有點不準確。主要是基于以上規(guī)模和要求,雖然 Go 內(nèi)置了 Profiler,但這個 CPU Profiler 在基于 Linux 的系統(tǒng)上有嚴重的限制(也許在其他操作系統(tǒng)也有此問題,但 Uber 使用的是 Linux,其他機器并沒有測試驗證),同時內(nèi)置的 Profiler 缺少掌握 CPU 瓶頸所需要的許多細節(jié)。

基于這些問題,Uber fork 了一份 github.com/golang/go 代碼,在其上建立一個定制的 Go Profiler,以便更符合 Uber 的需求和 Uber 的商業(yè)運營規(guī)模。

具體來說,Uber 通過將豐富的硬件性能監(jiān)視特性集成到 Go 的缺省 pprof 分析器中來增強它。這提供了幾個關(guān)鍵好處:

能夠獲得更準確和精確的 Go 程序分析文件(profiles);

監(jiān)控各種 CPU 事件的能力,比如緩存丟失、套接字間(NUMA)通信、 CPU 分支錯誤預測等等;

能夠以非常高的采樣頻率(最高可達 10 微秒)監(jiān)控 Go 程序;

所以,Uber 定制的「Go 編譯器」其實只是增強了 Profiler。注意,對 Profiler 的使用并不需要改變,也就是說,對外的接口、使用的工具和分析都沒有變(比如堆棧屬性、調(diào)用圖和火焰圖等),只是增加了更多的數(shù)據(jù)。

增強版的 Profiler,Uber 稱之為 pprof++,這是帶有硬件性能計數(shù)器的解決方案。

具體增加了哪些 CPU 事件,Uber 給了一張圖,公開了最常見的一些事件。

關(guān)于這些事件的使用,以及 pprof++ 的更詳細信息可以參考:https://eng.uber.com/pprof-go-profiler/。

Uber fork 的 Go 倉庫地址:https://github.com/uber-research/go。

03 感想

看到這個消息,驚嘆 Uber 對 Go 的使用和研究之深,也證明了 Go 被大公司的規(guī)模使用,看好 Go 的前途。

不知道 Uber 開發(fā)的 pprof++,有沒有和 Go Team 溝通,嘗試合入 Go 官方倉庫,畢竟既然開源出來了,如果能夠在官方中使用,可以讓更多人收益。當然,因為目前只支持 Linux 系統(tǒng),可能不太適合合入。至少,不希望 Go 出現(xiàn)分裂!

 

責任編輯:武曉燕 來源: polarisxu
相關(guān)推薦

2013-12-30 11:21:31

Go編譯器

2021-10-10 15:01:09

Go 源碼Github

2021-09-06 07:59:13

Go編譯器語言

2019-10-15 14:16:45

編程語言Go 開發(fā)

2022-08-22 07:38:01

Go語言函數(shù)

2021-08-22 17:18:58

Go代碼泛型代碼

2024-01-18 13:36:00

RustGo開發(fā)

2020-02-27 21:03:30

調(diào)度器架構(gòu)效率

2020-11-10 13:42:07

Go編譯器修復

2019-06-14 08:35:14

華為禁令開發(fā)

2017-07-26 18:49:00

京東機器學習人工智能

2021-08-16 07:11:56

Go語言進程

2010-01-08 16:00:46

C++編譯器

2021-12-13 20:09:33

GoElasticsearJava

2013-12-10 10:53:47

shellcode

2010-10-20 13:43:37

C++編譯器

2022-05-18 09:31:42

編譯器開源代碼生成

2010-03-23 11:17:16

Python 動態(tài)編譯

2021-03-16 22:44:18

Go語言開發(fā)

2020-04-30 09:24:46

Go項目語言
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本精品一区二区三区在线观看 | 国产精品日韩一区二区 | 久久精品无码一区二区三区 | 午夜精品久久久久久久星辰影院 | 久久高清亚洲 | 国产一区二区 | 久久不卡| 99国产精品视频免费观看一公开 | 精品一区二区三区在线观看 | 欧美久久视频 | 亚洲欧洲av在线 | 精品欧美一区二区三区久久久 | 日本不卡在线观看 | 日日干日日射 | 亚洲视频在线观看 | 国产美女高潮 | 亚洲电影免费 | 国产精品黄视频 | 国产一级在线观看 | 成人在线观看亚洲 | 亚洲视频免费观看 | 亚洲美女一区二区三区 | caoporn免费 | av喷水| 久久中文字幕一区 | 欧美日韩精品专区 | 国产成人福利在线观看 | 久久久久久色 | 一区二区三区中文字幕 | 午夜影院在线观看 | 久久se精品一区精品二区 | 91视频网址 | 欧美黄色网 | 亚洲午夜精品在线观看 | 成人免费视频观看 | 在线观看视频你懂得 | 在线播放国产一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 欧美一区二区三区在线观看 | 成人精品一区二区三区 | 亚洲国产精品一区二区第一页 |