Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zastaralé Poskytuje místní a globální optimalizace, automatické přidělování registru a optimalizaci smyčky. Doporučujeme místo toho použít /O1 buď (minimalizovat velikost), nebo /O2 (maximalizovat rychlost).
Syntaxe
/Og
Poznámky
/Og je zastaralý. Tyto optimalizace jsou teď ve výchozím nastavení povolené, pokud jsou povoleny všechny optimalizace. Další informace o optimalizacích naleznete v tématu /O1, /O2 (minimalizace velikosti, maximalizace rychlosti) nebo/Ox (povolení většiny optimalizací rychlosti).
Následující optimalizace jsou k dispozici v části /Og:
Eliminace místních a globálních běžných dílčích výrazů
V této optimalizaci se hodnota společného dílčího výrazu vypočítá jednou. V následujícím příkladu platí, že pokud se hodnoty
btří výrazů nezměníc, kompilátor může přiřadit výpočetb + cdočasné proměnné a tuto proměnnou použít prob + c:a = b + c; d = b + c; e = b + c;Pro místní běžnou optimalizaci dílčích výrazů kompilátor zkoumá krátké části kódu pro běžné dílčí výrazy. Pro globální běžnou optimalizaci dílčích výrazů kompilátor prohledává celé funkce pro běžné dílčí výrazy.
Automatické přidělení registru
Tato optimalizace umožňuje kompilátoru ukládat často používané proměnné a dílčí výrazy v registrech. Klíčové
registerslovo se ve výchozím nastavení ignoruje a způsobí diagnostiku pod/std:c++17nebo novějším.Optimalizace smyčky
Tato optimalizace odebere z těla smyčky invariantní dílčí výrazy. Optimální smyčka obsahuje pouze výrazy, jejichž hodnoty se mění při každém spuštění smyčky. V následujícím příkladu se výraz
x + ynezmění v textu smyčky:i = -100; while( i < 0 ) { i += x + y; }Po optimalizaci se vypočítá jednou místo pokaždé,
x + ykdyž se smyčka spustí:i = -100; t = x + y; while( i < 0 ) { i += t; }Optimalizace smyčky je mnohem efektivnější, když kompilátor nemůže předpokládat žádné aliasy, které nastavíte pomocí
__restrict,noaliasneborestrict.Poznámka:
Globální optimalizaci můžete povolit nebo zakázat na základě funkce pomocí direktivy
optimizegpragma společně s možností.
Související informace najdete v tématech /Oi (Generování vnitřních funkcí) a/Ox (povolení většiny optimalizací rychlosti).
Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
Do pole Další možnosti zadejte možnost kompilátoru.
Programové nastavení tohoto parametru kompilátoru
- Viz třída AdditionalOptions.