Hello,
we made some interesting experience while implementing and testing a software package, which makes use of overloaded operators. One aspect of the implementation is the speed of the resulting binaries. To find the best solution we have tested the following approaches: normal overloading and templates. The example (attachment) contains the source code for 3 programms:
prog - execution without overloading progtemp - template based progover - normal overloading
Compiled with g++ version 3.2 we got the following runtime: prog about 2.9 seconds progtemp about 2.9 seconds progover about 3.5 seconds It seems clear that the template based implementation should be the one to use.
After recompiling with g++ version 3.4.1 we got a complete different result: prog about 2.9 seconds progtemp about 15.4 seconds !!! progover about 3.5 seconds This time the template version is not really good. :-( (Same problem with g++ version 3.3.2 on a different machine)
My questions are: - Is this a known problem? - Is there a compiler switch which can solve the problem?
Sincerely yours,
Andreas Kowarz
Attachment:
example.tar.bz2
Description: application/bzip
begin:vcard fn:Andreas Kowarz n:Kowarz;Andreas org;quoted-printable:TU Dresden;Institut f=C3=BCr wissenschaftliches Rechnen adr:;;Fachrichtung Mathematik;Dresden;Sachsen;D-01062;Germany email;internet:kowarz@xxxxxxxxxxxxxxxxxx title:Dipl.-Inf. tel;work:+49 351 / 463 - 35060 note:ICQ: 165700422 x-mozilla-html:FALSE version:2.1 end:vcard
Attachment:
signature.asc
Description: OpenPGP digital signature