Switching to quotRem gave no measurable improvements.After switching to ByteString, the code now runs in 9 seconds, which outperforms my C version. But honestly, I have no idea why.New code:$ ghc --make -O3 303only012.hs && time ./303only012 50000000 > /dev/null./303only012 50000000 > /dev/null 9.72s user 0.21s system 90% cpu 10.961 total@Alois, I'm not sure how criterion can help compare my code with the C version, since in the C version I cannot measure the exec time of only012 only. What did you have in mind?
Thanks everyone!--
CpOn Wed, Feb 19, 2014 at 7:24 PM, Levent Erkok <erkokl@gmail.com> wrote:Also, prefer quotRem over divMod as the former is faster. See here: http://stackoverflow.com/questions/339719/when-is-the-difference-between-quotrem-and-divmod-usefulOn Wed, Feb 19, 2014 at 10:19 AM, Gregory Collins <greg@gregorycollins.net> wrote:
Text.Printf is slower than the C version (and uses String). Use Data.ByteString.putStr instead.On Wed, Feb 19, 2014 at 9:36 AM, Charles-Pierre Astolfi <cpa@crans.org> wrote:
So there's a difference, but I'm not sure if it's related to my algorithm or related to IO/RTS.--
Gregory Collins <greg@gregorycollins.net>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe