Скорость веб-фреймворка haskell, GHCi vs Compiled
Сегодня я провел небольшой тест на своем локальном компьютере, чтобы сравнить скорость простого текста в различных веб-фреймворках на Haskell, и заметил кое-что странное. Почти все фреймворки, которые я тестировал, работали лучше, когда они запускались из 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 ответ
Это была недавняя проблема, обнаруженная Харендрой Кумар также в этом билете GHC. Вы можете увидеть соответствующее обсуждение списка рассылки ghc-dev здесь. Посмотрите на это конкретное наблюдение Харендры:
Пытаясь придумать минимальный пример, я обнаружил еще одну загадочную вещь. runghc самый быстрый, ghc медленнее, ghc с оптимизацией медленнее. Это полностью противоположно ожидаемому порядку.
Если возможно, я бы посоветовал вам составить минимальный тест для того же и обновить билет GHC с вашим хранилищем.