Freigeben über


Codeoptimierung

Durch die Optimierung einer ausführbaren Datei können Sie sowohl von schneller Ausführungsgeschwindigkeit als auch von kleiner Codegröße profitieren. In diesem Thema werden einige der Mechanismen erläutert, mit denen Sie in Visual C++ Code optimieren können.

Sprachfeatures

In den folgenden Themen werden einige der Optimierungen in der Programmiersprache C/C++ beschrieben.

  • Pragmas und Schlüsselwörter für die Optimierung
    Eine Liste von Schlüsselwörtern und Pragmas, die Sie im Code verwenden können, um die Leistung zu verbessern.

  • Compileroptionen nach Kategorien sortiert
    Eine Liste von /O-Compileroptionen, die sich speziell auf Ausführungsgeschwindigkeit oder Codegröße auswirken.

  • Rvalue-Verweisdeklarator: &&
    Rvalue-Verweise unterstützen die Implementierung von Verschiebesemantik. Wenn Verschiebesemantik zur Implementierung von Vorlagenbibliotheken verwendet wird, kann dadurch die Leistung von Anwendungen, die diese Vorlagen verwenden, bedeutend verbessert werden.

Das optimize-Pragma

Wenn ein optimierter Codeabschnitt Fehler oder eine Verlangsamung verursacht, können Sie die Optimierung mit dem optimize-Pragma für diesen Abschnitt deaktivieren.

Schließen Sie den Code folgendermaßen in zwei Pragmas ein:

#pragma optimize("", off)
// some code here 
#pragma optimize("", on)

Programmierempfehlungen

Möglicherweise werden auch zusätzliche Warnmeldungen angezeigt, wenn Sie Code mit implementierter Optimierung kompilieren. Dieses Verhalten tritt erwartungsgemäß auf, da einige Warnungen sich nur auf optimierten Code beziehen. Sie können viele Optimierungsprobleme vermeiden, indem Sie diese Warnungen beachten.

Paradoxerweise kann die Geschwindigkeitsoptimierung eines Programms zur langsameren Ausführung des Codes führen. Dies ergibt sich aus der Verlängerung des Codes, die durch die Geschwindigkeitsoptimierungen verursacht wird. Durch das Einbetten von Funktionen wird z. B. der Mehraufwand für Funktionsaufrufe vermieden. Jedoch kann durch das Einbetten von zu viel Code das Programm derart vergrößert werden, dass die Anzahl der durch den virtuellen Arbeitsspeicher verursachten Seitenfehler zunimmt. Die durch fehlende Funktionsaufrufe gewonnene Geschwindigkeit kann also durch Speicherauslagerungen wieder zunichte gemacht werden.

In den folgenden Themen werden bewährte Programmierstile erläutert.

Debuggen von optimiertem Code.

Da der vom Compiler erstellte Code durch die Optimierung geändert werden könnte, empfiehlt es sich, die Anwendung zu debuggen, die Leistung zu messen und dann den Code zu optimieren.

In den folgenden Themen finden Sie grundlegende Informationen zum Debuggen.

In den folgenden Themen finden Sie weiterführende Informationen zum Debuggen.

In den folgenden Themen finden Sie Informationen dazu, wie Sie das Erstellen, Laden und Ausführen des Codes optimieren können.

Siehe auch

Weitere Ressourcen

Referenz zur C/C++-Erstellung