今天我在本地机器上做了很少的基准测试来比较不同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
答案 0 :(得分:3)
这是Harendra Kumar最近发现的问题GHC ticket。您可以在此处查看相关的ghc-dev mailing list讨论。请参阅Harendra中的具体观察结果:
在尝试提出一个最小的例子时,我又发现了一个 令人费解的事情。 runghc是最快的,ghc更慢,ghc用 优化是最慢的。这与预期完全相反 顺序。
如果可能的话,我建议你为它提出一个最小的基准,并用你的存储库更新ghc票。