Tip: LTCG (Link-Time Code Generation) MSVC7/.NET
2 отговора
108 прегледа
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
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
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)"
Опцията /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)"
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
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