Hallo,
On Thursday, 11. April 2002 17:13, Jens Weiße wrote:
angeregt durch die Diskussionen zur Softwarebeschleunigung habe ich ein bisschen mit den Compileroptionen experimentiert. Jedoch bringt nur die Option -O3 einen Geschwindigkeitsgewinn. Ansonsten ist das Programm für den 486 genauso schnell wie das für den 686.
Vielleicht ist der Source mit -O3 schon so optimiert, daß es nichsts gibt, was ein 486 schlechter als ein 686 könnte. Oder aber der gcc erkennt nichts, was er besser machen könnte.
Sind die Optionen für den Pentium und höher nur Dummies, oder liegt das an dem sehr einfach gestrickten Programm? Das Programm rechnet in vielen Schleifen mit noch mehr Funktionsaufrufen nur einige Winkelfunktionen und Wurzeln aus. Vermutlich bringt eine Verbesserung des Codes mehr als ein $Wundercompiler, aber davon habe ich _keine_ Ahnung.
Naja, macht dein Programm das selber oder nutzt es z.B. die Wurzelfunktion von der libc/libm? Dann passiert nämlich folgendes: Die Bibliotheksfunktion selber ist normalerweise nur für i386 kompiliert worden, und zur Compilierzeit ist nur daß -O3 ausschlaggebend, weil es (sofern ich mich recht erinnere) inline-Funktionen erzwingt.
Achso, das ganze läuft unter Suse 7.3 mit gcc version 2.95.3 20010315 auf einem 700-ter Athlon
Der kann, im Gegensatz zum neuen gcc-3.0, beispielsweise noch kein -march=athlon/-mcpu=athlon. Wobei die richtig guten Athlon-Optimierungen erst mit dem gcc 3.1 kommen werden.
Josef Spillner (der sowas über $DEBIAN_BUILDARCH regelt)