【非廣告】乾貨分享,再次關於效能優化
今天參加了一個GoLang的技術沙龍,演講者是GoLang語言的開發專家Dave Cheney,主題是關於GoLang程式設計的效能優化,場面相當火爆,一個報告廳座無虛席,還有大幾十號人全程站著聽完。
由於是內部分享,我不便提供太多的內容。其實 Dave 四十五分鐘的演講幾乎都沒用PPT,而是現場基於示例程式進行效能調優、分析,可謂相當自信。是的,沒有PPT,但內容都公開在他的個人網站上(https://dave.cheney.net/high-performance-go-workshop/gopherchina-2019.html,點選“閱讀原文 ”直接訪問該站點),而且這個站點聊到了很多 GoLang 效能調優的技巧,包括但不限於CPU,記憶體,Execution Tracker...而且演講內容只是這個網頁所包含內容的子集,所以看完它基本等同於你聽了這個分享。
就個人而言,我非常看好 GoLang 在多個領域的前景,比如服務端開發,雲,容器,物聯網等,有Kubernetes, Docker, Prometheus, TiDB等眾多明星專案在眾多領域帶來既有的影響力,同時又在FaaS, Edge compulting等多個新興領域一騎絕塵。前景可謂不可限量,生態的劣勢也在慢慢得到改善。
回憶起來,我唯一參與過的GoLang專案是Linux基金會下的邊緣計算框架EdgeXFoundry,去年這段時間的那些個週末我都在用Golang給它貢獻程式碼。那時EdgeXFoundry GoLang版本才剛剛起步不久,現在也有點苗頭了,國內有不少企業、教學研究機構都開始試點,據瞭解我司也在基於它進行定製開發。那時,因為還要參與 Flink 社群的開發,慢慢便沒有太多精力投入在這個框架上。中間還有個小插曲,當時我給這個框架的support層寫了個排程器(scheduler),結果他們說要重構一下,後來Dell的一個小哥,估計是不懂Git,把我整個排程器的Git歷史全部抹掉了,結果就只剩下在檔案頭上留下的公司版權資訊。當時為了寫這個排程器,我記得大概花費了兩個週末的時間,而且還熬夜才搞定的。
Golang 語言給我的感覺是上手非常快,程式碼風格標準如一,命令化工具化得非常Geek,但要真正寫好也不容易,尤其是指標,介面等。
OK,說了這麼多,如果你想在Java之外,再“投資”學習一門語言,我推薦你選GoLang,而非Python。而如果你在學習GoLang之餘,遇到效能問題,希望Dave的這個站點提供的一些工具能夠幫到你。
另外,得到PingCAP的授權,後續我將轉載一個系列文章:《TiKV原始碼解析》。
TiKV 是一個分散式事務鍵值資料庫,最初是為了補充 TiDB 而建立的。TiKV 採用 Rust 構建,由 Raft 提供支援,受到 Google Spanner 和 HBase 設計的啟發,提供簡化的排程和自動平衡,但不依賴於任何分散式檔案系統。 TiKV 是一個開源、統一分散式儲存層,支援功能強大的資料一致性、分散式事務、水平可擴充套件性和雲原生架構。