Re: Was sind OPTIMIZED_CFLAGS?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Thu, 9 Apr 2009 12:40:59 +0200 (CEST)

Heino Tiedemann wrote:
> Frage: Was ist das überhaupt: OPTIMIZED_CFLAGS??

Die Ports, die diese Option bieten, werden dann nicht mit
den Default-CFLAGS (-O2 -fno-strict-aliasing -pipe) com-
piliert, sondern mit stärkeren Optimierungen (-O3 und
andere, obskurere Sachen).

Der Vorteil ist, dass möglicherweise noch ein Quentchen
Performance herausgekitzelt werden kann. In der Praxis
ist der Unterschied aber häufig nicht spürbar (oder
höchstens als Placebo-Effekt). Es ist sogar möglich,
dass der Code tatsächlich langsamer wird, weil kritische
Teile davon z.B. aufgrund von Loop-Unrolling nicht mehr
in die CPU-Caches passen. Das hängt natürlich auch stark
von der jeweiligen Hardware ab.

Nachteil ist, dass CFLAGS, die nicht »standard« sind,
möglicherweise auch Bugs im Compiler-Backend bzw. im
Optimizer zu Tage fördern können. Das hat sich zwar
heutzutage gebessert (früher war das bei gcc schlimmer),
aber vollkommen ausschließen kann man es nicht. Das
muss sich übrigens nicht unbedingt in Crashes äußern:
Ich erinnere mich an einem konkreten Fall, bei dem die
mjpegtools bei starker Optimierung ab und zu Fehler in
das erzeugte Video eingebaut haben (genauer gesagt: an
Stellen mit starken Kontrasten waren gelegentlich
Schlieren zu sehen). Mit den Standard-CFLAGS trat das
Problem nicht auf.

Ich persönlich verzichte auf die OPTIMIZED_CFLAGS, da
mir Stabilität und Korrektheit wichtiger ist als ein
(möglicherweise nur eingebildeter) Geschindigkeitsgewinn.
Aber das muss jeder für sich selbst entscheiden.

Im Zweifelsfall kannst Du es natürlich auch einfach aus-
probieren und schauen, wie »schnell« es sich anfühlt
(und ob es dauerhaft stabil läuft und korrekte Ergebnisse
produziert).

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"And believe me, as a C++ programmer, I don't hesitate to question
the decisions of language designers.  After a decent amount of C++
exposure, Python's flaws seem ridiculously small." -- Ville Vainio
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 09 Apr 2009 - 12:41:27 CEST

search this site