[Haskell-cafe] [Somewhat OT] Speed
wren ng thornton
wren at freegeek.org
Tue Oct 28 21:20:09 EDT 2008
Richard O'Keefe wrote:
> Rough guesses:
> integer adds, subtracts, and compares are fast,
> integer multiplies and divides are much slower,
> slow enough that compilers go to some trouble to
> do something else when multiplying or dividing
> by a constant.
Typically, these days (for both int and fp)...
Multiply is somewhat slower than addition (1x~4x). Many compilers will
go through efforts to convert multiplications into additions, shifts,
etc, but that code is mostly legacy from when multiplication was in the
8x~12x range.
Division is much slower than multiplication (10x~40x). Many compilers
will do all they can to convert these into simpler operations whenever
possible. When in doubt, performance programmers tend to do the same.
Logarithms/exponentiation are also much, much slower than
multiplication. I'm not aware of any compilers that try to optimize
these in any meaningful way. (Though for a very particular task, see the
logfloat package
<http://hackage.haskell.org/cgi-bin/hackage-scripts/package/logfloat>.)
--
Live well,
~wren
More information about the Haskell-Cafe
mailing list