我就改了一行代碼,為什么就全超時了?
為什么我只改了一行代碼,服務(wù)的極限 QPS 就從 1w 變成了 2000?
為什么我只是引入了一個開源庫,進程的 RSS 占用就比以前多了一倍?
為什么我只是把字符串拼接改得更可讀,接口就全超時了?
為什么我只是給接口加了監(jiān)控,就直接導(dǎo)致一個 P2 事故?
在日常開發(fā)中,我們總是會與性能問題不期而遇,沒有系統(tǒng)地進行過了解和學習的話,發(fā)現(xiàn)問題后的劇情,就是把這些棘手的問題丟給公司內(nèi)的穩(wěn)定性團隊來定位了。
作為一個上進的 Gopher,你能忍受自己寫出來的問題自己定位不出來么?我覺得不能。
這要求我們必須主動去學習性能優(yōu)化的知識和套路,并且能夠在開發(fā)實踐中運用這些技能。
這是一個速度決定一切的時代,我們的生活在不斷地數(shù)字化,線下的流程依然在持續(xù)向線上轉(zhuǎn)移,轉(zhuǎn)移過程中,作為工程師,我們會碰到各種各樣的性能問題。
性能優(yōu)化對于后端工程師是難以逃避的問題,對于 Gopher 來說也是如此。
作為一名優(yōu)秀的 Gopher ,當然要趕緊抓住千載難逢的機會,報名參加 GopherChina 大會的會前培訓(xùn),培訓(xùn)將由資深 Gopher 曹春暉在他的《Go 性能優(yōu)化實戰(zhàn)訓(xùn)練》中為大家撥開云霧,指點 Go 性能的迷津:
學習常見的調(diào)優(yōu)工具,
了解如何診斷實踐中的性能問題,并針對這些問題進行優(yōu)化。
理解如何寫出更符合計算機架構(gòu)的高性能代碼;
能夠正確編寫 benchmark 對 library 進行優(yōu)化;
能夠?qū)σ延械姆?wù)進行性能調(diào)優(yōu);
能夠定位常見的服務(wù)瓶頸,并優(yōu)雅地解決;
Benchmark Ninja :
正確編寫 Benchmark,理解 Benchmark 的輸出。
通過 Benchmark 理解 false sharing、變量逃逸、Zero Garbage 等等常見性能領(lǐng)域概念。
了解給 Go 語言提 PR 時為什么不能直接使用 Benchmark 結(jié)果。
了解社區(qū)內(nèi)幾個熱門的 Benchmark Game 和相關(guān)測試。
Profiling Master:
Go 內(nèi)置 pprof 的實現(xiàn)原理與操作指南。
苛刻內(nèi)存限制環(huán)境下的 C10k 應(yīng)用性能診斷與優(yōu)化。
分析與優(yōu)化 http 服務(wù)的 CPU 占用。
使用 pprof 分析 sync.Pool 誤用導(dǎo)致的阻塞瓶頸。
Compiler/Reverse 101:
Go 語言的編譯過程,相關(guān)的編譯,反編譯工具,編譯優(yōu)化過程觀察編譯優(yōu)化帶來的優(yōu)勢和問題。
Language Pitfalls:
sync.Pool 一定能夠優(yōu)化你的程序么。
語言的設(shè)計缺陷導(dǎo)致的那些性能問題。
Performance in the Wild:
應(yīng)用外部問題導(dǎo)致的性能問題示例
了解常見的性能優(yōu)化方法論

Xargin(曹春暉),資深 Gopher,《Go 語言高級編程》合著者,golang-notes 項目的作者(2.4k star),曾供職于滴滴和螞蟻金服,做過大規(guī)模的在線服務(wù)與基礎(chǔ)設(shè)施。對性能優(yōu)化了解頗多,也期待能夠把他碰到的大量實踐案例與你分享。
報名參加的方式有兩種:「掃碼下方二維碼」或者「閱讀原文」即可
