Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Genom att optimera en körbar fil kan du uppnå en balans mellan snabb körningshastighet och liten kodstorlek. I det här avsnittet beskrivs några av de mekanismer som Visual Studio tillhandahåller för att hjälpa dig att optimera kod.
Språkfunktioner
I följande avsnitt beskrivs några av optimeringsfunktionerna på C/C++-språket.
Optimeringspragma och nyckelord
En lista över nyckelord och pragmas som du kan använda i koden för att förbättra prestandan.
Kompilatoralternativ listade efter kategori
En lista över / O-kompilatoralternativ som specifikt påverkar körningshastigheten eller kodstorleken.
Rvalue-referenser stöder implementeringen av flyttsemantik. Om flyttsemantik används för att implementera mallbibliotek kan prestandan för program som använder dessa mallar förbättras avsevärt.
Optimeringspragma
Om ett optimerat kodavsnitt orsakar fel eller en avmattning kan du använda pragma för att optimera för att inaktivera optimering för det avsnittet.
Omslut koden mellan två pragmas, som du ser här:
#pragma optimize("", off)
// some code here
#pragma optimize("", on)
Programmeringsmetoder
Du kanske märker ytterligare varningsmeddelanden när du kompilerar koden med optimering. Det här beteendet förväntas eftersom vissa varningar endast gäller optimerad kod. Du kan undvika många optimeringsproblem om du hörsammade dessa varningar.
Paradoxalt nog kan optimering av ett program för hastighet göra att koden körs långsammare. Detta beror på att vissa optimeringar för hastighet ökar kodstorleken. Inliningsfunktioner eliminerar till exempel omkostnaderna för funktionsanrop. Att ange för mycket kod kan dock göra programmet så stort att antalet fel på sidan för virtuellt minne ökar. Därför kan hastigheten från att eliminera funktionsanrop förloras på grund av minnesväxling.
I följande avsnitt beskrivs bra programmeringsmetoder.
Tips för att förbättra Time-Critical Code
Bättre kodningstekniker kan ge bättre prestanda. Det här avsnittet föreslår kodningstekniker som kan hjälpa dig att se till att de tidskritiska delarna i koden fungerar tillfredsställande.
Metodtips för optimering
Innehåller allmänna riktlinjer för hur du bäst optimerar ditt program.
Felsöka optimerad kod
Eftersom optimeringen kan ändra koden som skapas av kompilatorn rekommenderar vi att du felsöker programmet och mäter dess prestanda och sedan optimerar koden.
Följande avsnitt innehåller information om hur du felsöker versionsversioner.
Följande avsnitt innehåller information om hur du optimerar skapande, inläsning och körning av koden.
I det här avsnittet
Optimeringspragma och nyckelord
Förbättra dataflödet för kompilatorn
Varför Floating-Point tal kan förlora precision
IEEE-Floating-Point representation
Tips för att förbättra Time-Critical Code
Använda funktionsnamn utan () genererar ingen kod
Metodtips för optimering
Profile-Guided optimeringar
Miljövariabler för Profile-Guided optimeringar
PgoAutoSweep
pgomgr
pgosweep
Anvisningar: Sammanfoga flera PGO-profiler till en enda profil