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:

Kapcsolódó cikkek