
just for the kicks i tried the new version of bytestring without -O2 and the results were even worse: time Main1 < nums real 0m40.092s user 0m0.015s sys 0m0.015s time Main3 < nums real 0m41.405s user 0m0.015s sys 0m0.015s it got pwned even by this very naive ruby scipt (which, btw, chewed through some ~600 MB of memory ;-)) File.open("nums","r") do |f| puts((f.read.split.each {|x| x.to_i }).length) end time ruby nums.rb real 0m21.609s user 0m0.015s sys 0m0.015s so it probably can't be stressed enough: repeat "-O2" and now seriously: is there a reason why -O2 shouldn't be made the default (and allowing to turn off optimizations by -O0 perhaps) ? On Tue, Oct 7, 2008 at 5:36 AM, wman <666wman@gmail.com> wrote:
new figures, after updating bytestring (0.9.0.1.1 -> 0.9.1.2) && using -O2
time Main < nums real 0m2.531s user 0m0.015s sys 0m0.015s
time Main2 < nums real 0m13.999s user 0m0.015s sys 0m0.015s
time Main3 < nums real 0m2.796s user 0m0.015s sys 0m0.015s
thats more like it, even the unpacking didn't hurt so much.
the morals: "Thou shalt update your libraries" & "Thou shalt not forget to turn on optimizations" before bitching it's too slow ;-)))
thx
On Tue, Oct 7, 2008 at 5:19 AM, Don Stewart
wrote: Hmm. How are you compiling it? Using bytestring 0.9.1.x ?
Should be fast,
http://shootout.alioth.debian.org/gp4/benchmark.php?test=sumcol&lang=all
Assuming you're turning on optimisations ( ghc -O2 )
-- Don