Tag Archives: branchless

Branchless UTF-8 解碼器

看到「A Branchless UTF-8 Decoder」這篇,先來回憶一下「非常經典的 UTF-8...」這篇,以及裡面提到的 encoding: 因為當初在設計 UTF-8 時就有考慮到,所以 decoding 很容易用 DFA 解決,也就是寫成一堆 if-then-else 的條件。但現代 CPU 因為 out-of-order execution 以及 pipeline 的設計,遇到 random branch 會有很高的效能損失,所以作者就想要試著寫看看 branchless 的版本。 成效其實還好,尤其是 Clang 上說不定在誤差內: With GCC 6.3.0 on an i7-6700, my decoder is about … Continue reading

Posted in Computer, Library, Murmuring, Programming, Software | Tagged , , , , , , , , , , , | Leave a comment