在Haskell的Data.Text.Encoding
中,假设一个呈现纯ASCII ByteString
,decodeLatin1是否比decodeUtf8快得多?直观地看来,鉴于utf-8的性质(即顶部位的测试),至少会有一个机器指令。我知道我可以做自己的剖析,但我认为这可能已经完成了,所以这就是我要问的原因。
答案 0 :(得分:1)
这是文本库在内部用于解码器的底层C代码。特别是函数_hs_text_decode_latin1
:
http://hackage.haskell.org/package/text-1.0.0.1/src/cbits/cbits.c
是decodeLatin1比decodeUtf8
快得多
对此的答案很简单,无论如何,如果您需要使用现有的latin1文本数据,您应该选择使用latin1解码器。对于几乎所有情况,其他任何事情都只是微优化,text
库已经非常优化。