/ OPT (optymalizacje)
Formanty optymalizacje, które łączy wykonuje podczas kompilacji.
/OPT:{REF | NOREF}
/OPT:{ICF[=iterations] | NOICF}
Argumenty
REF | NOREF
/OPT:REFeliminuje funkcje i/lub dane, które nigdy nie są wymienione podczas /OPT:NOREF śledzi funkcje i/lub dane, które nigdy nie są wymienione.ŁĄCZE usuwa nieużywane funkcje pakowane domyślnie.Obiekt zawiera funkcje pakowane (COMDATs), jeśli został skompilowany z /Gy opcji.Ta optymalizacja jest nazywany przechodnie eliminacji COMDAT.Aby zastąpić to domyślne i zachować nieużywane COMDATs w programie, należy określić /OPT:NOREF.Można użyć Volume opcję, aby zastąpić usunięcia określonego symbolu.
Jeśli /DEBUG jest określony, domyślnie dla /OPT jest NOREF (w przeciwnym razie jest REF), i wszystkie funkcje są zachowywane w obrazie.Aby zastąpić to domyślne i zoptymalizować Kompilacja debugowania, należy określić /OPT:REF./OPT:REF Opcja wyłącza łączenie przyrostowych.
Należy wyraźnie oznaczyć dane jako COMDAT; Użyj __declspec(selectany).
Jeśli /OPT:REF jest określony, /OPT:ICF jest domyślnie włączona.Jeśli chcesz /OPT:REF , ale nie /OPT:ICF, należy określić następujące czynności:
link /opt:ref /opt:noicf
Określanie /OPT:ICF nie aktywuje /OPT:REF opcji.
ICF[= iterations**] | NOICF**
Użyj /OPT:ICF[=iterations] do wykonywania identyczne składanie COMDAT.Nadmiarowe COMDATs można usunąć z danych wyjściowych linker.iterations określa liczbę razy, aby przy przechodzeniu przez folder Symbole duplikatów.Domyślna liczba iteracji wynosi dwa.Dodatkowe iteracji może zlokalizować duplikaty więcej niewykrytych poprzez składanie w poprzedniej iteracji.Należy zauważyć, że ma różnicy w zachowaniu linker podczas ICF jest domyślnie z /OPT:REF jawnie określony oraz gdy jawnie określić /OPT:REF,ICF.Domyślnie ICF z /OPT:REF nie złóż danych tylko do odczytu.Obejmuje to wszystkie .rdata, .pdata i .xdata.Jednak domyślną ICF z /OPT:REF wyników w mniej funkcji składany przy produkcji obrazów dla Itanium i x64 , ponieważ funkcje w tych modułach bardziej przeczytałem tylko zależność danych, takich jak .pdata i .xdata.Aby uzyskać pełne ICF, wyraźnie określić /OPT:ICF.
Funkcje są umieszczane w COMDATs z /Gy opcję kompilatora i const danych jest umieszczana w COMDATs.Zobacz selectany na przykład sposobu określania danych dla składanych.
ICFjest domyślnie Jeśli REF jest włączona i musi być jawnie włączone w trybie debugowania.Jest możliwe określenie NOICF Jeśli REF jest określony.
[!UWAGA]
/OPT:ICFmoże doprowadzić do tego samego adresu, które są przypisane do różnych funkcji lub odczytać tylko członkowie danych (const zmiennych skompilowany z /Gy).Tak /OPT:ICF można podzielić program, który zależy od adresu funkcji lub członków danych tylko do odczytu są różne.Zobacz /Gy (Włączanie funkcji na poziomie łączenie) Aby uzyskać więcej informacji.
Uwagi
Optymalizacje zasadniczo zmniejszyć rozmiar obrazu i zwiększyć szybkość działania programu kosztem łącze zwiększenia czasu.
Można użyć /verbose opcji, aby zobaczyć funkcje usunięte przez /OPT:REF i funkcje, które są składane przez /OPT:ICF.
Aby ustawić tę opcję programu łączącego w środowisku projektowym programu Visual Studio
Otwórz projekt Stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Ustawianie właściwości projektu Visual C++.
Kliknij przycisk program łączący folder.
Kliknij przycisk optymalizacji stronę właściwości.
Zmodyfikuj jedną z następujących właściwości:
Umożliwić składanie COMDAT
Optymalizuj dla systemu Windows 98
Odwołania
Aby ustawić tę opcję linker programowo
- Zobacz EnableCOMDATFolding i OptimizeReferences właściwości.