Es scheint, dass Haskell's IO relativ langsam ist.Wie verbessert man die Leistung von Haskell IO?
Zum Beispiel vergleicht Haskell mit Python
#io.py
import sys
s=sys.stdin.read()
sys.stdout.write(s)
,
-- io.hs
main = do
s <- getContents
putStr s
Ihre Leistung (gen.py schreibt 512k Daten in stdout):
Die Python-Version:
$ time python gen.py | python io.py > /dev/null
real 0m0.203s
user 0m0.015s
sys 0m0.000s
Die Haskell-Version:
$ time python gen.py | runhaskell io.hs > /dev/null
real 0m0.562s
user 0m0.015s
sys 0m0.000s
Es scheint, dass die Haskell ist weit geringer. Gibt es ein Problem mit meinem Test? Oder ist es nur das inhärente Problem von Haskell?
Danke.
Beide Male sind die Zeit, die das Programm zu kompilieren versuchen Timing 'gen.pyc' (vorkompilierte) vs eine vorkompilierte von 'io.hs'. – chepner