Hmm. I recompiled the current snapshot with the optimizations from my
Mandrake RPM (using the Mandrake defaults, except for disabling
"fast-math"), and get the following:
7.0.2 current test1.8 5.3 sum(i)1.95 1.77 sum(f)2.3 1.9 sum(cast(i as float8))
My previous tests on the current tree were with -O0, asserts enabled,
and few other options specified (mostly, the defaults for the Postgres
Linux build).
The Linux defaults in the Postgres tarball are:
-O2 -Wall -Wmissing-prototypes -Wmissing-declarations
whereas the defaults for Mandrake (with fast-math turned off since it
gives rounding trouble in date/time math):
-O3 -fomit-frame-pointer -fno-exceptions -fno-rtti -pipe -s -mpentiumpro -mcpu=pentiumpro -march=pentiumpro
-fexpensive-optimizations-malign-loops=2 -malign-jumps=2 -malign-functions=2 -mpreferred-stack-boundary=2
-fno-fast-math
I'll do some more tests with the default compiler options. The good news
is that the new fmgr interface is apparently as fast or faster than the
old one :)
- Thomas