Tip: LTCG (Link-Time Code Generation) MSVC7/.NET

2 отговора 108 прегледа
#1

Tip: LTCG (Link-Time Code Generation) MSVC7/.NET

Za maniaciate na super-burzite izpulnenia (demo-pisachi ili game-developeri)

Ima optzia za MSVC7.00/.NET - za kompilatora /GL, kojato sus optizata za linkera /LTCG pravjat mnogo burz kod - wsushnost pravjat kod kojto se generira link-time. Wsushnost wuw .OBJ ili .LIB failovete wmesto da se generira x86 kod - se ostavja insn-to (instruction-coda) i sled tova se kompilira dokato se linkwa! resultatite sa wpechatljawashti!

Za da raboti pod MSVC7 - trjabwa da se dobawjat (ruchno - njama Button za tova) wuw Project->Properties->C++->Command Line->Additional Properties - optziata "/CL"

i wuw Project->Properties->C++->Librarian->Command Line -> "/LTCG:STATUS"

za izpulnimi failove Project->Properties->C++->Linker->Command Line -> "/LTCG:STATUS"




To err is human
To stderr is inhuman
Отговор
в отговор на malkia #2

Re: Tip: LTCG (Link-Time Code Generation) MSVC7/.NET

Всъщност това, което правят опциите /GL и /LTCG е, че казват на компилатора и линкера да оптимизират програмата като цяло, а не само отделните модули. Това позволява да се оптимизират регистрите при извиквания на функции, да се inline-ват функции, които са дефинирани в други модули и т.н.

Опцията /LTCG се подразбира, когато е зададена опцията /GL.

За повече информация:

MSDN Library / ".NET Development" / "Visual Studio .NET" / "Product Documentation" / "Visual C++" / "Building Your Program" / "C/C++ Building Reference" / "Compiling a C/C++ Program" / "Compiler Options" / "Compiler Options Listed Alphabetically" / "/GL (Whole Program Optimization)"

MSDN Library / ".NET Development" / "Visual Studio .NET" / "Product Documentation" / "Visual C++" / "Building Your Program" / "C/C++ Building Reference" / "Linking" / "Linker Options" / "/LTCG (Link-time Code Generation)"

Отговор
в отговор на ironcode #3

Re: Tip: LTCG (Link-Time Code Generation) MSVC7/.N

taka de :) na dobur bulgarski

Sega ostava ot Microsoft da dostavjat i biblioteki kompilirani sus LTCG - zasega samo za XBOX ima. Razbiraemo za DLL nema da stane - ama haide sega puk ;)

Tova e super-jako obache che mozhe da generira koda po-kusno - taka shte mozhe po-dobre da prerazpredeli registrite - steka i mnogo drugi neshta! Pravilnia put za Microsoft - tuka GCC shte ima da gi goni dosta!

Razbira se ako e goljam proekta - tova vdiga mnogo iziskwaniata za pamet (po vreme na kompilatzia) i sushto pada dosta skorostta - az suzdadoh "Final" build proekt osven "Debug" i "Release" kojto e "Release" no sus LTCG on!

Tova shte udari s nozh w gurba template i inline programiraneto - koeto taka ili inache weche pochwam da ponamrazwam - osobeno kogato koda se pishe na edna linia - blizo 400 simvola!

To err is human
To stderr is inhuman
Отговор