Господа, а использует ли кто-нибудь предкомпилированные заголовки?
И если использует то как.
Я попробовал таким образом. В своем проекте для каждого заголовочного файла компилю компилю предкомпилированнные заголовки. Компилю их такими командами в Makefile:
cmd_msg.h.gch: cmd_msg.h
$(CPP) cmd_msg.h -c -o$@ $(CPPFLAGS)
Специально для оценки скорости работы ввел режим их отдельного компилирования. Но, что-то мне не совсем нравится то, что когда приходится перекомпилировать весь проект, это получается гораздо дольше, чем совсем без предкомпилированных заголовков.
Вот результаты компиляций:
1. Компиляция одного модуля:
project module
pheaders pheaders real user sys
1.1 + + 3,5 2,9 0,3
1.2 + - 6,7 6,0 0,5
1.3 - - 8,2 7,4 0,61
2. Компиляция всего проекта:
pheaders project
real user sys real user sys
2.1 43,6 34,2 2,8 14 11 1,2
2.2 - - - 29 25 1,9
Пояснения:
1.1 Компиляция одного модуля, pheaders модуля и всего проекта скомпилированы
1.2 То же pheaders модуля не скомпилированы
1.3 То же, без pheaders
2.1 Компиляция pheaders и всего проекта
2.2 Компиляция проекта без использования pheaders
Вот пришла в голову мысль, может для стандартных заголовков попробовать сделать так, там, где в моем заголовке включаетсся стандартный заголовок включить его через свой, примерно так,
my.h:
#include "../headers/my_string.h"
headers/my_string.h:
И включить директорию headers в путь поиска заголовков Вроде тогда стандартные заголовки должны компилится только один раз и использоваться несколько раз, по идее общее время компиляции проекта должно уменьшится.
Кто нибудь пробовал такой путь?