Hi all haskellers

I every now and then get the feeling that doing my job code in Haskell would be 
a good idea.

I have tried a couple of times, but each time I seem to run into performance 
problems - I do lots of heavy computing.

The problem seems to be connected to lazy loading, which makes my programs so 
slow that I really can not show them to anyone. I have tried all tricks in the 
books, like !, seq, non-lazy datatypes...

I was poking around to see if this had changed, then I ran into this forum 
post: http://stackoverflow.com/questions/9409634/is-indexing-of-data-vector-unboxed-mutable-mvector-really-this-slow

The last solution was a haskell program which was in the 3x range to C, which I 
think is ok. This was in the days of ghc 7.0

I then tried compile the programs myself (ghc 7.4.1), but found that now the C 
program now was more that 100x faster. The ghc code was compiled with both O2 
and O3, giving only small differences on my 64-bit Linux box.

So it seems something has changed - and even small examples are still not safe 
when it comes to the lazy-monster. It reminds me of some code I read a couple 
of years ago where one of the Simons actually fired off a new thread, to make 
sure a variable was realized.

A sad thing, since I am More that willing to go for Haskell if proves to be 
usable. If anyone can see what is wrong with the code (there are two haskell 
versions on the page, I have tried the last and fastest one) it would also be 
interesting.

What is your experience, dear haskellers? To me it seems this beautiful 
language is useless without a better lazy/eager-analyzer.

Cheers,

Felix
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to