haskell webframeworks速度,GHCi vs Compiled

时间:2017-09-19 09:36:44

标签: haskell yesod ghci servant scotty

今天我在本地机器上做了很少的基准测试来比较不同Haskell Web框架的纯文本速度,我发现了一些奇怪的东西。我测试的几乎所有框架,当它们从GHCi运行时与编译版本相比表现更好。这是我的结果

+------------------------------------
|framework| GHCi rpm   | compiled rpm 
+---------+------------+-------------
|snap     | 8000       | 150
+---------+------------+-------------
|yesod    | 6000       | 2500
+---------+------------+-------------
|scotty   | 22000      | 9500
+---------+------------+-------------
|servant  | 17000      | 8500
+---------+------------+-------------
|spock    | 3300       | 2700
+---------+------------+-------------

我知道这些数字并没有反映这些框架的速度,因为它们没有得到很好的调整或优化,但我的问题是为什么这些框架在从GHCi启动时表现更好。难道我做错了什么 ?

为了构建它们,我只需运行stack build

1 个答案:

答案 0 :(得分:3)

这是Harendra Kumar最近发现的问题GHC ticket。您可以在此处查看相关的ghc-dev mailing list讨论。请参阅Harendra中的具体观察结果:

  

在尝试提出一个最小的例子时,我又发现了一个   令人费解的事情。 runghc是最快的,ghc更慢,ghc用   优化是最慢的。这与预期完全相反   顺序。

如果可能的话,我建议你为它提出一个最小的基准,并用你的存储库更新ghc票。