目錄 前置知識 os scheduler 線程切換 函數調用過程分析 goroutine 是怎么工作的 什么是 go ...
toc 相信很多人都聽過 雷神 關於性能優化的故事。在一個 D 游戲引擎的源碼里,John Carmack 將 sqrt x 這個函數的執行效率優化到了極致。 一般我們使用二分法,或者牛頓迭代法計算一個浮點數的平方根。但在這個函數里,作者使用了一個 魔數 ,根本沒有迭代,兩步就直接算出了平方根。令人嘆為觀止 因為它是最底層的函數,而游戲里涉及到大量的這種運算,使得在運算資源極其緊張的 DOS 時 ...
2019-11-11 08:16 3 2577 推薦指數:
目錄 前置知識 os scheduler 線程切換 函數調用過程分析 goroutine 是怎么工作的 什么是 go ...
目錄 什么是 map 為什么要用 map map 的底層如何實現 map 內存模型 創建 map 哈希函數 key 定位過程 ...
目錄 什么是 context 為什么有 context context 底層實現原理 整體概覽 接口 Context ...
目錄 什么是反射 為什么要用反射 反射是如何實現的 types 和 interface 反射的基本函數 反射的三大定律 反射 ...
Go 語言的 slice 很好用,不過也有一些坑。slice 是 Go 語言一個很重要的數據結構。網上已經有很多文章寫過了,似乎沒必要再寫。但是每個人看問題的視角不同,寫出來的東西自然也不一樣。我這篇會從更底層的匯編語言去解讀它。而且在我寫這篇文章的過程中,發現絕大部分文章都存在一些問題,文章里 ...
目錄 指針類型 什么是 unsafe 為什么有 unsafe unsafe 實現原理 unsafe 如何使用 獲取 slice 長度 獲 ...
目錄 並發模型 並發與並行 什么是 CSP 什么是 channel channel 實現 CSP 為什么要 ch ...
目錄 1. Go 語言與鴨子類型的關系 2. 值接收者和指針接收者的區別 方法 值接收者和指針接收者 兩者分別在何時使用 3. iface 和 eface 的區別是什么 4. 接口的動態類型和動態值 5. 編譯器 ...