"optymalizacje" C++

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Nie, 6 Maj 2001, 22:16:05 CEST


On Sun, 6 May 2001, Jakub Bogusz wrote:

> chodzi o: [przykład z gperf.spec]
> 
> Revision 1.17  2001/05/04 07:44:08  kloczek
> [...]
> - use C++ optomizations only when debug is not enabled.
>  
> (konkretnie: -fno-rtti -fno-exceptions -fno-implicit-templates )
>  
> IMO to nie są optymalizacje - tylko po prostu wyłączenie niektórych
> featurów C++.

Wychodzi mniejszy kod czyli zoptymalizowany pod użycie :)

> Jedyne (AFAIK) co może czasem się przydać przy debuggowaniu to rtti
> (żeby sprawdzić typ jakiegoś obiektu - tylko nie jestem pewien - czy
> można sprawdzić z poziomu debuggera? chyba tak, jest to realizowane
> jako dodatkowy atrybut?).

Dlatego użycie powinno wygladać tak mniej wiecej:

CXXFLAGS="%{rpmcflags} %{!?debug:-fno-rtti -fno-exceptions -fno-implicit-templates}"

> exceptions i implicit-templates albo jest potrzebne, albo nie,
> i przy debuggowaniu niczego nie zmieniają.

Ale wpływają na rozmiar kodu wynikowego (i to znacznie .. do nawet
dwudziestu paru procent).

> Czy w związku z tym jest sens, aby w wersji --debug wyjątki
> i implicit-templates zostawały włączone tam gdzie nie są potrzebne?
> rtti można zostawić.

Nie znam się na tym aż tak. Patrzę na to pod kontem binarek produkcyjnych
które powinny być możliwei małe i szybkie. To co się dziej w tym wypadku
przy %{debug} do już inna rzecz i być może masz rację.

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl