Go 語言高效能程式設計

2021-10-12 10:29:18 字數 1017 閱讀 2097

第一章 效能分析

第二章 常用資料結構

第三章 併發程式設計

第四章 編譯優化

附錄 go 語言陷阱

go 語言筆試面試題

我使用 go 作為主力程式語言已經有一年多的時間了,主要的工作職責是開發一些效率工具,例如分布式編譯加速工具。對效能不太敏感的地方,通常會使用 python,因為 python 在文字處理上有其他語言不可比擬的優勢,而在一些對效能特別敏感的地方,則會選擇 go。go 語言讓我最為推崇的莫過於 go 的併發,協程加通道,sync 加 select,我覺得很難再有那麼一門語言,併發能夠做得像 go 一樣簡單。

為了加深對 go 的理解,我嘗試去學習一些著名的開源專案,比如分布式快取 groupcache。知乎上有個問題,「有哪些值得學習的 go 語言開源專案?」,這個回答下面,groupcache 被提到了不下 3 次。groupcache **精煉、功能強大,堪比快取的瑞士軍刀。乙個好的專案肯定是備受推崇的,從這些優秀的專案中汲取精華,我覺得是掌握一門語言最快速的方式。因此,我建立了乙個專案,叫做 7days-golang,七天用 go 模仿乙個開源專案,希望用 1000 行不到的**去模仿開源專案中最為精華的部分。這個專案也讓我受益匪淺,在這個過程中學習到的一些程式設計方法和思想,也讓我的工作變得有趣了起來。一些優雅的設計和實現,**量極少,效率又極高。比如一致性雜湊,single flight 等等。

通過學習一些著名的開源專案和 go 的原始碼,也掌握了很多程式設計的技巧,知道怎麼寫才能獲得更好的效能。這些技巧是零散的,我一直希望能夠將這些技巧系統地整理出來,不斷地完善,最終形成一本高效能程式設計的指南。因此,開啟了 go 語言高效能程式設計 這個電子書專案。這個專案剛起步,處於乙個逐步完善的過程,與各位童鞋共勉。

如果你是 go 的初學者,建議先閱讀 go 語言簡明教程,一篇文章了解 go 的基礎語法。這本書適合使用 go 作為主力程式語言已經有一段時間,希望進一步提公升 go 程式設計技巧的童鞋。

專案位址:high-performance-go

關注知乎:極客兔兔

Go 語言程式設計

課程名稱 go 語言程式設計 課程時間 2014年7月30日 週三 20 50 22 00 課程安排 20 50 21 00 通過郵件位址登入網路課堂 21 00 22 00 主題演講 徐立 與qa ps 課程諮詢 入qq群 csdn技術交流 群號是303806405 課程名稱 go 語言程式設計 ...

C語言程式設計常用數值計算的高效能實現

本篇介紹一組非常簡單卻又很常用的數值計算的巨集實現。本篇所提到的數值計算問題,相信c語言初學者都能做得出來,但是本篇中給出的例子實現卻更注重效率。這些例子實現的最大特點是,消除了邏輯跳轉。這樣做的好處是避免了分支 的風險,或者換句話說,可以更好地發揮處理器流水線的效能。由於本篇的問題都很簡單,筆者就...

Go語言之Go語言網路程式設計

go語言的 net 包中有乙個 tcpconn 型別,可以用來建立 tcp 客戶端和 tcp 伺服器端間的通訊通道,tcpconn 型別裡有兩個主要的函式 func c tcpconn write b byte n int,err os.error func c tcpconn read b byt...