Frage

Ich mag die Compiler-Optimierungen auszuwählen, um die schnellstmögliche Anwendung zu generieren.

Welche der folgenden Einstellungen sollte ich auf true gesetzt?

  • Toter speichern Beseitigung
  • Beseitigen Sie doppelte Ausdrücke in Basisblöcke und Funktionen
  • Induktionsvariable Aktivieren Schleife und Festigkeitsreduzierung
  • Aktivieren Pentium Instruction Scheduling
  • erweitert gemeinsame Eigenfunktionen
  • Optimieren springt
  • Verwenden Registervariablen

Es gibt auch die Option ‚generieren, um den schnellstmöglichen Code.‘, Die ich wahr offenbar eingestellt haben. Allerdings, wenn ich dies auf true gesetzt, alle oben genannten Optionen sind noch auf false gesetzt.

Also ich würde gerne wissen, ob eine der oben genannten Optionen wird die Anwendung beschleunigen, wenn ich sie auf true gesetzt?

War es hilfreich?

Lösung

  

Also ich würde gerne wissen, ob eine der oben genannten Optionen wird die Anwendung beschleunigen, wenn ich sie auf true gesetzt?

weiß, dass ich einige mich dafür hassen, aber hier niemand beantworten können Sie wahrheits . Sie haben Ihr Programm mit und ohne sie versuchen, und Profil jeder bauen und sehen, was die Ergebnisse sind. Guess-Arbeit wird niemanden überall.

Compiler bereits tut Tonnen (!) Von großer Optimierung, mit oder ohne Ihre Erlaubnis. Ihre beste Wette ist der Code in einer sauberen und organisierten Materie, und Sorgen über die Wartbarkeit und Erweiterbarkeit zu schreiben. Als Ich mag sagen:.-Code jetzt, optimize später

Andere Tipps

Do Mikromanagement nicht auf die individuelle Optimierung nach unten. Compiler Autoren sind sehr intelligente Menschen - nur drehen sie alle auf, wenn Sie einen besonderen Bedarf sehen nicht. Ihre Zeit ist besser ausgegeben durch Ihren Code zu optimieren (Verbesserung der algorithmische Komplexität Ihrer Funktionen, usw.) anstatt das Hantieren mit Compiler-Optionen.

Mein anderer Rat, verwenden Sie einen anderen Compiler. Intel hat einen guten Ruf als optimierenden Compiler. VC und GCC natürlich sind auch große Auswahl.

Sie auf den generierten Code mit verschiedenen Optionen kompiliert aussehen könnte, um zu sehen, was am schnellsten ist, aber ich verstehe heute viele Menschen haben keine Erfahrung dies zu tun.

Daher wäre es sinnvoll sein, um die Anwendung zu profilieren. Wenn es ein offensichtlicher Teil erfordert Geschwindigkeit ist, fügen Sie einen Code, um sie auszuführen tausend oder zehn Millionen Mal und Zeit es utime() zu verwenden, wenn es verfügbar ist. Die Schleife sollte lang genug laufen, dass andere Prozesse mit Unterbrechungen laufen das Ergebnis nicht zehn auf zwanzig Sekunden, beeinflussen ist ein beliebter Benchmark-Bereich. Oder mehrere Timing-Studien laufen. Kompilieren verschiedene Testfälle und führen Sie es zu sehen, was am besten funktioniert.

Die Ausgaben eine Stunde oder zwei Spiele mit Optimierungsoptionen wird schnell deutlich, dass die meisten kleinere Wirkung. Jedoch, dass gleichzeitig Gedanken über das Wesen des Algorithmus ausgegeben und kleine Änderungen (Code Entfernung ist besonders effektiv) kann oft in beträchtlichem Ausmaß Verbesserung der Ausführungszeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top