
Int64 is emulated on 32 bit. So it is not as efficient by a long shot. On Thursday, 28 March 2013, Branimir Maksimovic wrote:
I have posted previous knucleotide program, it is fast on 64 bit but very slow on 32 bit. I cannot install 32 bit ghc to test it so I can only guess is that cause is use of Int64 for hash and HashMap array indexing. What bothers me is that it that much slower , and I guess that array indexing of 64 bit int where native index is 32 bit is culprit. Am I right? If I make Int index of array it will be fast on 32 bit platform too? I cannot imagine that hashing to 64 bit int is culprit rather array indexing as I guess that every array access requires indirect access on 32 bit platform?
64 bit :
http://benchmarksgame.alioth.debian.org/u64q/program.php?test=knucleotide&lang=ghc&id=1 19.80 secs 32 bit:
http://benchmarksgame.alioth.debian.org/u32q/program.php?test=knucleotide&lang=ghc&id=1 91.01 secs ;(
I really like Haskell, but Im frustrated as how inpredictable it is. Im programming from 1983' but found Haskell as much more difficult to program efficiently than C++. In C++ whatever lousy program I write it performs decently, but not so in Haskell. It requires much deeper knowledge than c++.