[PUG] gcc -O1 geht schneller als -O2 Optimierung
hi, von einem Professor habe ich eine Mail erhalten, in der er sagt, dass ein Programm, welches mittels -O2 kompiliert wurde, mehr Zeit für die Abarbeitung der Datensätze benötigt, als ein Programm welches mittels dies mit -O1 (also ohne Optimierung) übersetzt wurde. Er bezieht das auf ein Problem, was wohl mit Vmware selbst zusammenhängen muss. Ich weiß jetzt allerdings nicht, mit welchen Worten ich Google füttern muss, um dem ganzen auf die Schliche zu kommen. cu denny signature.asc Description: This is a digitally signed message part -- PUG - Penguin User Group Wiesbaden - http://www.pug.org
Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung
Denny Schierz schrieb: hi, von einem Professor habe ich eine Mail erhalten, in der er sagt, dass ein Programm, welches mittels -O2 kompiliert wurde, mehr Zeit für die Abarbeitung der Datensätze benötigt, als ein Programm welches mittels dies mit -O1 (also ohne Optimierung) übersetzt wurde. Er bezieht das auf ein Problem, was wohl mit Vmware selbst zusammenhängen muss. -O1 heißt nicht das keine Optimierung benutzt wird. bei -O2 werden nur Optimierungen eingeschaltet die mehr Geschwindigkeit bringen aber den Speicherverbrauch nicht erhöhen. Was hat gcc denn mit Vmware zutun ? -Sven- -- PUG - Penguin User Group Wiesbaden - http://www.pug.org
Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung
Hi Denny, grundsätzlich gilt: Eine höhere Optimierungsstufe bringt nicht immer mehr Performance. Die Leute suchen immer gerne den Knopf "tunen", den man einfach drücken muss und schon läuft alles wie von Zauberhand schneller, aber den gibt es nicht und wenn es ihn gäbe wäre er vernünftigerweise schon automatisch aktiviert. Im Grunde genommen muss man sich seine Anwendung anschauen und überlegen was man tunen will bzw. untersuchen wo eigentlich das Problem liegt, denn auch die beste Compiler-Optimierung kann Sachen wie schlecht formulierte SQL-Statements oder unnötig durchlaufenen Programmcode nicht beheben. Gruß Laurence On 11/26/2010 11:11 AM, Denny Schierz wrote: > hi, > > von einem Professor habe ich eine Mail erhalten, in der er sagt, dass > ein Programm, welches mittels -O2 kompiliert wurde, mehr Zeit für die > Abarbeitung der Datensätze benötigt, als ein Programm welches mittels > dies mit -O1 (also ohne Optimierung) übersetzt wurde. Er bezieht das > auf ein Problem, was wohl mit Vmware selbst zusammenhängen muss. > > Ich weiß jetzt allerdings nicht, mit welchen Worten ich Google füttern > muss, um dem ganzen auf die Schliche zu kommen. > > cu denny > > > > -- > > PUG - Penguin User Group Wiesbaden - http://www.pug.org signature.asc Description: OpenPGP digital signature -- PUG - Penguin User Group Wiesbaden - http://www.pug.org
Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung
Vielleicht schickst du ihm einfach folgendes: http://www.redhat.com/magazine/011sep05/features/gcc/ http://www.redhat.com/magazine/012oct05/features/gcc/ Da steht in der Einleitung: "In theory, the higher the optimization level, the faster your application will run. Unfortunately, things are not always so simple.[..]" Im übrigen hat lano recht: -01 heißt nicht: ohne Optimierung! Gruß Laurence On 11/26/2010 01:11 PM, Laurence Tonke wrote: > Hi Denny, > > grundsätzlich gilt: Eine höhere Optimierungsstufe bringt nicht immer > mehr Performance. > > Die Leute suchen immer gerne den Knopf "tunen", den man einfach drücken > muss und schon läuft alles wie von Zauberhand schneller, aber den gibt > es nicht und wenn es ihn gäbe wäre er vernünftigerweise schon > automatisch aktiviert. > Im Grunde genommen muss man sich seine Anwendung anschauen und überlegen > was man tunen will bzw. untersuchen wo eigentlich das Problem liegt, > denn auch die beste Compiler-Optimierung kann Sachen wie schlecht > formulierte SQL-Statements oder unnötig durchlaufenen Programmcode nicht > beheben. > > Gruß > Laurence > > On 11/26/2010 11:11 AM, Denny Schierz wrote: >> hi, >> >> von einem Professor habe ich eine Mail erhalten, in der er sagt, dass >> ein Programm, welches mittels -O2 kompiliert wurde, mehr Zeit für die >> Abarbeitung der Datensätze benötigt, als ein Programm welches mittels >> dies mit -O1 (also ohne Optimierung) übersetzt wurde. Er bezieht das >> auf ein Problem, was wohl mit Vmware selbst zusammenhängen muss. >> >> Ich weiß jetzt allerdings nicht, mit welchen Worten ich Google füttern >> muss, um dem ganzen auf die Schliche zu kommen. >> >> cu denny >> >> >> >> -- >> >> PUG - Penguin User Group Wiesbaden - http://www.pug.org > > > > -- > > PUG - Penguin User Group Wiesbaden - http://www.pug.org signature.asc Description: OpenPGP digital signature -- PUG - Penguin User Group Wiesbaden - http://www.pug.org
Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung
hi, ich danke schonmal für die Antworten. Aber ich sollte noch etwas dazu erwähnen: Das Programm ist von einem Informatiker mit Mathematik als Schwerpunkt geschrieben worden. Die Aufgabe des Programms ist es gerade, den Unterschied zwischen -O1 und -O2 aufzuzeigen. Auf einem Celeron D mit 3Ghz benötigt das Programm - je nach -O - zwischen 1:40min und 1:45min. In der Virtuellen Kiste sind es sogar über 2:01min. Dabei kommt eine VM mit Xeon 4 x 2,5Ghz ins Spiel. Ich habe mal ein wenig "optimiert" und der VM CPUs fest zugewiesen, sodass diese nicht mehr geteilt werden, mit den anderen VMs. Nun komme ich immerhin an ~1:32. -O2 und -O1 geben sich aber nicht viel, außer dass -O2 immernoch ein Tick (im ms Bereich)langsamer ist. Mal schauen, ob es da noch mehr Möglichkeiten gibt. cu denny signature.asc Description: This is a digitally signed message part -- PUG - Penguin User Group Wiesbaden - http://www.pug.org
Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung
Hi, ich finde die Frage ob es etwas mit der VM zu tun hat gar nicht weit her geholt. Durch die Optimierung könnte es meiner Meinung sein, dass etwas unbekanntere oder aus Kompatibilitäts-Zwecken nicht verwendete Befehle verwendet werden. Diese sind auf der VM vielleicht sind so gut umgesetzt oder emuliert um Probleme bei der Virtualisierung zu behandeln. Wie sind denn die Ergebnisse ohne VM? Benutzt du die VM hier um die Resourcen für das Programm einschränken zu können? Für mich klingt das danach als würdest du eine Liste von (ASM) Befehlen suchen die man in VMs am besten nicht benutzt bzw. direkt eine Untersuchung wie Compiler mit VMs umgehen sollten. Stimmt das? Gruß Ben. Denny Schierz wrote: hi, ich danke schonmal für die Antworten. Aber ich sollte noch etwas dazu erwähnen: Das Programm ist von einem Informatiker mit Mathematik als Schwerpunkt geschrieben worden. Die Aufgabe des Programms ist es gerade, den Unterschied zwischen -O1 und -O2 aufzuzeigen. Auf einem Celeron D mit 3Ghz benötigt das Programm - je nach -O - zwischen 1:40min und 1:45min. In der Virtuellen Kiste sind es sogar über 2:01min. Dabei kommt eine VM mit Xeon 4 x 2,5Ghz ins Spiel. Ich habe mal ein wenig "optimiert" und der VM CPUs fest zugewiesen, sodass diese nicht mehr geteilt werden, mit den anderen VMs. Nun komme ich immerhin an ~1:32. -O2 und -O1 geben sich aber nicht viel, außer dass -O2 immernoch ein Tick (im ms Bereich)langsamer ist. Mal schauen, ob es da noch mehr Möglichkeiten gibt. cu denny -- PUG - Penguin User Group Wiesbaden - http://www.pug.org -- PUG - Penguin User Group Wiesbaden - http://www.pug.org
Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung
Denny Schierz schrieb: hi, ich danke schonmal für die Antworten. Aber ich sollte noch etwas dazu erwähnen: Das Programm ist von einem Informatiker mit Mathematik als Schwerpunkt geschrieben worden. Die Aufgabe des Programms ist es gerade, den Unterschied zwischen -O1 und -O2 aufzuzeigen. Eine schöne option um zu sehn was gcc aus dem code macht ist "-S" -Sven- -- PUG - Penguin User Group Wiesbaden - http://www.pug.org