Насколько предописания влияют на время компиляции?

Я очень интересуюсь некоторыми исследованиями или эмпирическими данными, который показывает сравнение времени компиляции между двумя проектами C++, которые являются тем же кроме, каждый использует предописания где возможный и другое использование ни один.

Как решительно предописания могут измениться, время компиляции по сравнению с полным включает?

#include "myClass.h"

по сравнению с.

class myClass;

Есть ли какие-либо исследования, которые исследуют это?

Я понимаю, что это - неопределенный вопрос, который значительно зависит от проекта. Я не ожидаю твердое число для ответа. Скорее я надеюсь, что кто-то может направлять меня к исследованию об этом.

Проект, по поводу которого я конкретно волнуюсь, имеет приблизительно 1 200 файлов. Каждый cpp в среднем имеет 5 включенных заголовков. Каждый заголовок имеет в среднем 5 включенных заголовков. Это регрессирует приблизительно 4 уровня глубоко. Казалось бы, что для каждого скомпилированного cpp, приблизительно 300 заголовков должны быть открыты и проанализированы, некоторые много раз. (Во включать дереве существует много дубликатов.) Существует защита, но файлы все еще открыты. Каждый cpp отдельно компилируется с gcc, таким образом, нет никакого кэширования заголовка.

Чтобы не быть уверенным, никто не неправильно понимает, я, конечно, рекомендую использовать предописания, если это возможно. Мой работодатель, однако, запретил их. Я пытаюсь привести доводы против того положения.

Спасибо за любую информацию.

22
задан JoshD 18 October 2010 в 19:59
поделиться