Udostępnij za pośrednictwem


/ 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

  1. Otwórz projekt Stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Ustawianie właściwości projektu Visual C++.

  2. Kliknij przycisk program łączący folder.

  3. Kliknij przycisk optymalizacji stronę właściwości.

  4. 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 też

Informacje

Ustawianie opcji Linker

Opcje Linker