4

今天我在本地机器上做了一些基准测试来比较不同 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

4

1 回答 1

3

这是 Harendra Kumar 最近在这张GHC 票中发现的一个问题。您可以在此处查看相关的ghc-dev 邮件列表讨论。请参阅Harendra的这一具体观察:

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

如果可能的话,我建议您为相同的基准提出一个最低限度的基准,并使用您的存储库更新 ghc 票证。

于 2017-09-19T10:23:10.947 回答