Wygląda na to, że IO Haskella jest relatywnie wolne.Jak poprawić wydajność Haskell IO?
Na przykład, porównując Haskell z Pythonem
#io.py
import sys
s=sys.stdin.read()
sys.stdout.write(s)
,
-- io.hs
main = do
s <- getContents
putStr s
Ich wydajność (gen.py pisze 512K danych do stdout):
wersjiPython:
$ time python gen.py | python io.py > /dev/null
real 0m0.203s
user 0m0.015s
sys 0m0.000s
Wersja Haskell:
$ time python gen.py | runhaskell io.hs > /dev/null
real 0m0.562s
user 0m0.015s
sys 0m0.000s
Wygląda na to, że Haskell jest znacznie niższy. Czy jest jakiś problem z moim testem? Czy jest to tylko nieodłączny problem Haskella?
Dzięki.
Oba czasy to czas potrzebny do kompilacji program spróbować rozrządu 'gen.pyc' (skompilowany) vs skompilowany kod binarny z 'io.hs'. – chepner