[toc] 相信很多人都聽過“雷神 3”關於性能優化的故事。在一個 3D 游戲引擎的源碼里,John Carmack 將 1/sqrt(x) 這個函數的執行效率優化到了極致。 一般我們使用二分法, ...
目錄 指針類型 什么是 unsafe 為什么有 unsafe unsafe 實現原理 unsafe 如何使用 獲取 slice 長度 獲取 map 長度 map 源碼中的應用 Offsetof 獲取成員偏移量 string 和 slice 的相互轉換 總結 參考資料 上一篇文章我們詳細分析了 map 的底層實現,如果你也跟着閱讀了源碼,那一定對 unsafe.Pointer 不陌生,map 對 ...
2019-06-03 09:07 0 2805 推薦指數:
[toc] 相信很多人都聽過“雷神 3”關於性能優化的故事。在一個 3D 游戲引擎的源碼里,John Carmack 將 1/sqrt(x) 這個函數的執行效率優化到了極致。 一般我們使用二分法, ...
目錄 前置知識 os scheduler 線程切換 函數調用過程分析 goroutine 是怎么工作的 什么是 go ...
目錄 什么是 map 為什么要用 map map 的底層如何實現 map 內存模型 創建 map 哈希函數 key 定位過程 ...
目錄 什么是 context 為什么有 context context 底層實現原理 整體概覽 接口 Context ...
目錄 什么是反射 為什么要用反射 反射是如何實現的 types 和 interface 反射的基本函數 反射的三大定律 反射 ...
Go 語言的 slice 很好用,不過也有一些坑。slice 是 Go 語言一個很重要的數據結構。網上已經有很多文章寫過了,似乎沒必要再寫。但是每個人看問題的視角不同,寫出來的東西自然也不一樣。我這篇會從更底層的匯編語言去解讀它。而且在我寫這篇文章的過程中,發現絕大部分文章都存在一些問題,文章里 ...
目錄 並發模型 並發與並行 什么是 CSP 什么是 channel channel 實現 CSP 為什么要 ch ...
目錄 1. Go 語言與鴨子類型的關系 2. 值接收者和指針接收者的區別 方法 值接收者和指針接收者 兩者分別在何時使用 3. iface 和 eface 的區別是什么 4. 接口的動態類型和動態值 5. 編譯器 ...