Кажется, что IO Haskell относительно медленный.Как улучшить производительность Haskell IO?
Например, сравнивая Haskell с Python
#io.py
import sys
s=sys.stdin.read()
sys.stdout.write(s)
,
-- io.hs
main = do
s <- getContents
putStr s
Их производительность (gen.py пишет 512K данные в стандартный вывод):
версияПитон:
$ time python gen.py | python io.py > /dev/null
real 0m0.203s
user 0m0.015s
sys 0m0.000s
Версия Haskell:
$ time python gen.py | runhaskell io.hs > /dev/null
real 0m0.562s
user 0m0.015s
sys 0m0.000s
кажется, что Haskell один намного ниже. Есть ли какие-либо проблемы с моим тестом? Или это просто неотъемлемая проблема Хаскелла?
Спасибо.
Оба раза включает время, необходимое для компиляции программы Попробуйте синхронизацию 'gen.pyc' (предкомпилированным) против скомпилированного двоичного файла от 'io.hs'. – chepner