Помогают ли предварительно скомпилированные заголовки перестраивать? - PullRequest
1 голос
/ 02 июня 2010

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

Я обычно перестраиваю все свое решение Visual Studio 2010.

Одним из проектов в моем решении является проект C ++ / CLI.

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

После некоторых экспериментов кажется, что использование предварительно скомпилированных заголовков только замедляет процесс восстановления.

Помогают ли предварительно скомпилированные заголовки только в тех сборках, которые не полностью очистили старые файлы?

EDIT

Например, скажем, мой StdAfx.h имеет только 1 строку:

#include <string>

1 Ответ

4 голосов
/ 02 июня 2010

Это зависит!

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

Если у вас есть много исходных файлов, которые используют много одинаковых заголовков в предварительно скомпилированном заголовке, вы должны увидеть преимущество. В противном случае вы не увидите почти никакого ускорения или, что еще хуже, замедления из-за накладных расходов, связанных с переносом монолитного набора заголовков и переполненного глобального пространства имен.

...