Grundlegende E / A-Leistung in Haskell
Ein weiteres Mikrobenchmark: Warum ist diese "Schleife" (zusammengestellt mitghc -O2 -fllvm
, 7.4.1, Linux 64bit 3.2-Kernel, umgeleitet zu/dev/null
)
mapM_ print [1..100000000]
Etwa 5x langsamer als ein einfacher For-Cycle in der EbeneC
mitwrite(2)
ungepuffertes syscall? Ich versuche, Haskell-Fallstricke zu sammeln.
Auch diese langsame C-Lösung ist viel schneller als Haskell
int i;
char buf[16];
for (i=0; i<=100000000; i++) {
sprintf(buf, "%d\n", i);
write(1, buf, strlen(buf));
}