
Hello Andrew, Saturday, May 17, 2008, 6:51:27 PM, you wrote:
If anybody has any interesting insights as to why my version is so damned slow, I'd like to hear them.
i equally will be interesting to hear why you think what your program should be as fast as C version? you wrote it in purely functional style. as Don wrote, if you want to reach unoptimized C-like performance, you need to write in C style - with explicit loop processing primitive types. so 1) -funbox-strict-fields 2) don't use tuples as arguments - they are lazy. you may implement strict tuples instead 3) function as a parameter is very bad unless it will be inlined but these are only half-decisions. if you need maximum efficiency, drop all this high-level code and map md5.c to haskell as it was done in Don's bloag -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com