Как ускорить компиляцию с помощью предкомпилированных заголовков в С++ Builder

Цена:
10 руб.

Состав работы

material.view.file_icon
material.view.file_icon bestref-80537.rtf
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Вместо вступления сразу приведу пример. Полная сборка (build) проекта, содержащего около 170 cpp-модулей, при использовании предкомпилированных заголовков происходит за 811 секунд, при этом число обработанных компилятором строк составляет 1,808,780. При компиляции того же проекта без использования предкомпилированных заголовков, время сборки составляет 2399 секунд, а число строк, обработанных компилятором - 45,261,820. Впечатляет, не так ли? Плата за это ускорение, в принципе не велика - предкомпилированный образ, размер которого около 40 Мб.

При компиляции исходных текстов, компилятор должен обработать все *.cpp файлы проекта и все включенные в них *.h - файлы. При этом обрабатываются как пользовательские заголовочные файлы, так и стандартные, такие как vcl.h или Word2k.h. Количество кода, находящегося в стандартных заголовках может быть очень большим, например размер файла Word2k.h превышает 5 Мб, в нем больше 130 000 строк кода.

Так как содержимое стандартных заголовков не изменяется, то их компиляция при каждой сборке проекта является напрасной тратой времени. Предкомпилированные заголовки помогают решить эту проблему - стандартные файлы компилируются один раз, а затем используется скомпилированный двоичный образ.
Принцип действия предкомпилированных заголовков

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

#include <vcl.h>

#include <string>

#pragma hdrstop

Такая последовательность создаст образ, содержащий скомпилированные vcl.h и string. Этот образ будет использован для другого cpp-файла, если в нем до директивы hdrstop будут включены те же файлы, в том же порядке. Обращу внимание, что важен не только состав, но и порядок следования заголовков - даже если следующий cpp-файл включает те же заголовки, но сначала указан string, а потом vcl.h, то для этого cpp-файла будет создан новый образ.

Таким образом, для повторного использования предкомпилированного заголовка необходимо выполнение двух условий:

- состав включенный файлов до директивы hdrstop должен быть тем же

- последовательность включения файлов до директивы hdrstop должна быть той же

Сократить затраты на компиляцию стандартных заголовков до минимума можно только в том случае, если скомпилировать один образ, содержащий все стандартные заголовки, необходимые для проекта. Для этого нужно, чтобы:

- ВСЕ cpp-файлы проекта имели одинаковый блок включений до директивы hdrstop

- в этот блок должны входить ВСЕ стандартные заголовочные файлы, необходимые для проекта
Анализ эффективности технологии WebAssembly
Выпускная квалификационная работа по теме «Анализ эффективности технологии WebAssembly» Объём работы 33 страницы, на которых размещены 10 рисунков и 3 таблицы. При написании работы использовалось 10 источника. Ключевые слова: WebAssembly, Emscripten, производительность. Целью бакалаврской работы было реализовать тесты производительности и сравнить результаты их работы на различных браузерах. В рамках дипломного проекта была создана и настроена среда для разработки WebAssembly. Был выполнен сравн
User holm4enko87 : 3 августа 2017
1200 руб.
Анализ эффективности технологии WebAssembly
Прибыль предприятия и пути ее увеличения используя финансовую отчетность ОАО Белорусские продукты
Введение 3 1.Прибыль в системе показателей хозяйственной деятельности предприятия 5 2.Содержание и задачи анализа прибыли, источники информации 13 3.Анализ формирования прибыли и факторов её изменения 17 4. Анализ распределения прибыли по основном направлениям 27 5. Резервы роста прибыли и совершенствования системы её распределения 29 Заключение 33 Список использованных источников 35 Приложение А 37 Приложение Б 39 ВВЕДЕНИЕ Рыночная экономика определяет конкретные требования к систем
User Elfa254 : 25 октября 2013
10 руб.
Проблемы взаимоотношений полов и детства. Сравнительный анализ китайской и японской культур
Часть 1. Проблемы взаимоотношений полов и детства Часть 2. Сравнительный анализ китайской и японской культур Источники информации Проблемы взаимоотношений полов и детства При описании характера взаимоотношений между ребенком и его родителями необходимо также принимать во внимание тот тип общества, в котором развивается ребенок. Описывая взросление на Самоа, известный американский антрополог М.Мид отмечала, что система социальных отношений на Самоа была построена таким образом, чтобы по во
User Slolka : 10 октября 2013
Контрольная работа по дисциплине: Технологии транспортных сетей. Вариант 5
Задание Для заданной топологии сети определить в каждом пункте тип мультиплексора, уровень STM и оптический интерфейс на участках сети, если передается следующая информация: Таблица 1 - Расстояния между пунктами в км Вариант: 5 АБ: 55 БВ: 37 ВГ: 21 ГД: 78 ДА: - Таблица 2 Последняя цифра пароля: 5 Направления Е1 Е3 100BaseX (FE) 1000BaseX (GE) А-Б 22 3 3 - Б-В 77 2 2 1 А-Г 43 1 3 - В-Д 21 3 2 - Топология сети: Линейная
User Учеба "Под ключ" : 19 августа 2022
800 руб.
promo
up Наверх