Ablaufgeschwindigkeit von Programmen optimieren

  • Bestimmte Programme gewinnen an Ablaufgeschwindigkeit, wenn man ihren Binärcode direkt auf den Prozessor optimieren lässt. Das geschieht, indem man dem Compiler (in meisten Fällen GCC) einfach ein paar Optionen angibt. Der Parameter "-O" sorgt z.B. dafür, dass die Optimierungsstufe eingestellt wird. "-O6" stellt die höchste Stufe dar. Der Parameter "-march=i686" sagt dem Compiler, dass er den Code für Pentium II optimieren soll. Allerdings läuft dann das Programm nicht mehr auf einem normalen Pentium. Äquivalent wäre auch "-mpentiumpro". Möchte man bereits direkt beim Compilieren von dem zusätzlichen Befehlssatz seines Prozessors profitieren, so hilft der Parameter "-mcpu=i686" sicher weiter. Der Compilerschalter "-ffast-math" sorgt dafür, dass alle mathematischen Berechnungen schneller durchgeführt werden. Allerdings wird dann zusammen mit "-fexpensive-optimizations" meistens das Programm etwas größer. Möchte man nun nicht immer die einzelnen Parameter dem Compiler übergeben, so setzt man einfach eine Umgebungsvariable: CFLAGS="-O3 -march=i686 -mpentiumpro -mcpu=i686 -ffast-math -mieee-fp" Für C++-Programme lautet er CXXFLAGS, manchmal CPPFLAGS