2018年7月19日 星期四

Go runtime 是如何有效率地實作 maps (而不使用泛型)

Go 語言中有個很方便的工具 — map
基本上類似於 C++ 的 std::unordered_map
與 Java 的 java.util.Hashmap
然而對於 Go 而言最大的不同點在於它是個結合了自 compiler 到 runtime 的所實作的演算工具
這篇文章詳細地解釋了 map 在其背後的設計與實作的方式與其考量, 並與 C++ 及 Java 的方式做了比較, 值得一讀

沒有留言:

在 ARM 平台上使用 Function Multi-Versioning (FMV) - 以使用 Android NDK 為例

Function Multi-Versioning (FMV) 過往的 CPU 發展歷程中, x86 平台由於因應各種應用需求的提出, 而陸陸續續加入了不同的指令集, 此外也可能因為針對市場做等級區隔, 支援的數量與種類也不等. 在 Linux 平台上這些 CPU 資訊可以透過...