Hogyan lehet felgyorsítani összeállítás segítségével előre lefordított fejlécek építő
Hogyan lehet felgyorsítani összeállítás segítségével előre lefordított fejléceket C ++ Builder
Előre lefordított fejlécek drámaian megnöveli összeállítása sebességgel.
C ++ Builder Language Guide
Ahelyett, hogy jön azonnal egy példát. Komplett egység (build) projekt, amely körülbelül 170 cpp-modulok segítségével előre lefordított header történik 811 másodperc, a sorok száma dolgozza fel a fordító 1.808.780. Ha össze az ugyanabban a projektben nélkül előre lefordított fejlécek, összeszerelési idő 2399 másodperc, és a feldolgozott sorok számát a fordító - 45.261.820. Lenyűgöző, nem igaz? A díj és ez a gyorsulás, elvileg nem nagy - előrefordított képet, melynek mérete körülbelül 40 MB.
Amikor a forráskódot fordítjuk, a fordító kell feldolgoznia * .cpp fájlt a projekt, és mindegyik szerepel a * .h - fájlokat. Ugyanakkor kezelni egyéni fejlécet és a szokásos, például vcl.h vagy Word2k.h. Az összeg a kódot, amely a standard fejlécek lehet nagyon nagy, például Word2k.h fájl mérete meghaladja az 5 MB, ott több mint 130 000 sornyi kódot.
Mivel a tartalom a szabványos fejlécek nem változott, összeállítják minden épít a projekt időpocsékolás. Előre lefordított fejlécek segítsen megoldani ezt a problémát - a standard fájlokat egyszer állítják össze, majd a lefordított bináris kép.
A működési elv lefordított fejlécek
Hogy ellenőrizzék az előre lefordított rendeltetésszerű fordító irányelv #pragma hdrstop. Minden header fájlokat is tartalmazza ezt az irányelvet helyezünk egy-egy képet, például:
Ez létrehoz egy képet tartalmazó szekvenciát össze vcl.h és string. Ez a kép lehet használni más cpp-fájl, ha azt akarjuk, hdrstop irányelv tartalmazza ugyanazt a fájlt ugyanabban a sorrendben. Hadd hívjam fel a figyelmet arra, milyen fontos, nem csak az összetétele, hanem az, hogy a fejléc - akkor is, ha a következő cpp-fájl tartalmazza az azonos címmel, de az első szett: string, majd vcl.h, akkor erre a cpp-fájl új képet hoz létre.
Így az újrafelhasználás előre lefordított header szükséges két feltétel:
- készítmény tartalmazza fájlokat hdrstop irányelv azonosnak kell lennie
- A szekvencia file engedélyezéséhez hdrstop irányelv azonosnak kell lennie
Csökkentse költségeit összeállításának szabványos fejlécek minimálisra lehet használni, ha a összeállításához egy kép, amely az összes szabványos fejlécek a projekthez szükséges. Ehhez szükség van a következőkre:
- Minden projekt cpp-fájlok ugyanabban a blokkban felvételen az irányelv hdrstop
- ez az egység tartalmaznia kell az összes szabványos fejléc fájlokat a projekthez szükséges
Teljesíti ezeket a feltételeket éppen elegendő erre a célra az elején minden cpp fájl meg kell tenni a következő sorokat:
ahol pch.h - tartalmazó fájl felvételét az összes szabványos fejlécek: