在Data.Text中解码速度

时间:2014-01-11 01:12:02

标签: haskell text character-encoding

在Haskell的Data.Text.Encoding中,假设一个呈现纯ASCII ByteString,decodeLatin1是否比decodeUtf8快得多?直观地看来,鉴于utf-8的性质(即顶部位的测试),至少会有一个机器指令。我知道我可以做自己的剖析,但我认为这可能已经完成了,所以这就是我要问的原因。

1 个答案:

答案 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库已经非常优化。