2017-09-19 19 views
4

今日私はローカルマシンでベンチマークを行い、HaskellのさまざまなWebフレームワークのプレーンテキスト速度を比較しました。私がテストしたほとんどのフレームワークは、コンパイルされたバージョンと比較してGHCiから実行されたときに優れていました。ここで私は、彼らが適切にチューニングまたは最適化されていないため、これらの数字は、これらのフレームワークのスピードには反映されませんが、GHCiのから起動したときに、私の質問は、なぜこれらのフレームワークは、より良い実行しているされていることを知っている私の結果haskell webframeworks speed、GHCi vs Compiled

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

です。私は何か間違っているのですか?

それらを構築するために、私は単にこれはまた、このGHC ticketにHarendraクマールで見つけた最近の問題でしたstack build

+1

コメントなしのコードはありません。あなたのベンチマークを共有し、課題トラッカーに問題を投稿できますか? –

+1

実際、これは非常に驚くべきことであり、見るためのコードを持つことは素晴らしいことです。 – bgamari

+0

@MatthewPickering 私のコードを整理してgithubにアップロードします。 –

答えて

3

を実行します。関連するghc-dev mailing listの説明をご覧ください。 Harendraからこの特定の観測を参照してください:

最小限の例を思い付くしようとしている間は、私は1つの以上 不可解な事を発見しました。 runghcが最速、ghcが遅い、ghcが で最適化が最も遅いです。これは、予想される 注文とは完全に逆です。

可能であれば、同じベンチマークを最小限に抑えて、ghcチケットをリポジトリに更新することをお勧めします。

+0

自分のコードをgithubにアップロードしました。コメントのリンク。 –