我有以下代码段:
import Network.MessagePackRpc.Server
ping :: String -> IO String
ping s = return s
main :: IO ()
main = do
serve 8081 [ ("add", fun add), ("ping", fun ping) ]
现在,我观察到的是当我发送一个字符串时,例如100000个相同的1024字节字符串,小片段大约运行2秒。如果我去用例如return "the-1024-byte-string"
然后运行速度提高约25%。我已经上下运动了。我真的很惊讶,影响是如此巨大。有人有解释吗?
答案 0 :(得分:3)
返回已知(在编译时)常量可以启用更多内联。但是,必须检查生成的代码才能确定。