ПредишенСледващото

Как да се ускори събирането използване прекомпилирани заглавията в C ++ Builder

Прекомпилирани заглавията може драстично да се увеличи скоростта на компилация.

Builder Language Guide C ++

Вместо да се веднага дам един пример. Пълна проект монтаж (натрупване), съдържащ около 170 CPP-модули, използващи компилиран глава настъпва при 811 секунди, броят на линиите се обработва от компилатора 1,808,780. Когато се съберат един и същ проект, без да използвате предкомпилират заглавията, време монтаж е 2399 секунди, и броя на обработените редове от компилатора - 45,261,820. Впечатляващо, нали? Таксата за това ускорение, по принцип не е голям - компилиран с изображение, чийто размер е около 40 MB.

Когато компилирате сорс кода, компилаторът трябва да обработва всички * .cpp файлове на проекта и всички от тях са включени в * .h - файлове. В същото време се третира като по поръчка на горни и стандарт като vcl.h или Word2k.h. Размерът на код, който е в стандартни заглавията може да бъде много голяма, например Word2k.h размер на файла надвишава 5 MB, в него повече от 130 000 реда код.

Тъй като съдържанието на стандартните заглавията не са се променили, те събират на всеки изграждане на проекта е загуба на време. Прекомпилирани заглавията помогнат за решаване на този проблем - стандартните като данните се събират веднъж и след това да използват прекомпилирани изображение.

Операционната принципа на прекомпилирани заглавията

За да контролирате компилиран предназначение директива компилатор #pragma hdrstop. Всички заглавни файлове са включени в настоящата директива, са поставени в едно изображение, например:

Това ще създаде последователност образ, съдържащ съставени vcl.h и низ. Това изображение ще се използва за други CPP-файл, ако иска да hdrstop директива ще включва едни и същи файлове в един и същи ред. Позволете ми да привлека вниманието ви към това, което е важно, е не само състава, но също и по реда на заглавната част - дори и ако на следващата CPP-файл включва същите заглавия, но първия сет: низ, а след това vcl.h, а след това за тази CPP-файл ще бъде генериран нов имидж.

По този начин, за повторна употреба предкомпилирана глава изисква две условия:

- състав включва файлове, за да hdrstop директива трябва да бъде същият

- файла с последователност, за да се даде възможност на hdrstop директива трябва да бъде същият

Намаляване на разходите по съставяне на стандартни заглавки до минимум може да се използва само ако се съберат на едно изображение, съдържащо всички стандартни заглавията, необходими за проекта. За да направите това, вие трябва да:

- Всички проекти CPP-файлове имат едни и същи блок включванията към hdrstop на директива

- това устройство трябва да включва всички стандартни заглавни файлове, необходими за проекта

Запознайте се с тези условия само достатъчни за тази цел в началото на всяка CPP-файл, който трябва да се облече в следните направления:

където pch.h - файл, съдържащ включването на всички стандартни заглавия:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!