25 августа 2006

PCH

Если вы используете компилятор который поддерживает precompiled headers, то используйте это сойство во благо себе. Так мне сегодня удалось поднять скорость сборки одной программы с двух с половиной минут до 50 секунд! Причём так как программа находится в стадии активной разработки, в файл pch.h я включил только заголовки от Qt.

Комментарии: 4:

Anonymous Анонимный сказал(а)...

Вначале пасиб за пост - в qt assistant раньше в этот пункт не заглядывал

в файл pch.h я включил только заголовки от Qt.

а есть смысл добавлять туда хэдеры проекта?

из собственного теста (time make):
- без прекомпелированного хэдера:
real 0m22.703s
user 0m17.073s
sys 0m2.172s
- время "самостоятельной" компиляции хэдера (time g++ -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui PCH_Qt.h):
real 0m7.768s
user 0m2.932s
sys 0m0.440s
- время сборки с предварительно самостоятельно созданным предкомпилированным хэдером (вобщем с хэдером из предыдущего теста)
real 0m20.938s
user 0m17.153s
sys 0m1.892s
- время сборки с предварительной компиляцией хэдера "средствами qmake" (в конфиге проекта прописано все как надо):
real 0m20.794s
user 0m10.685s
sys 0m2.132s
- сборка полностью всего проекта за исключением хэдера созданного в предидущем тесте:
real 0m15.988s
user 0m7.040s
sys 0m1.920s

ps вот удалось бы связать cross-mingw-g++ 3.4.5 и qt 4.1.4 =)

11:56 AM  
Anonymous Анонимный сказал(а)...

ой...
sed @"/*@в файл pch.h я включил только заголовки от Qt@1@

12:00 PM  
Anonymous Анонимный сказал(а)...

>ps вот удалось бы связать cross-mingw-g++ 3.4.5 и qt 4.1.4 =)

удалось =) результаты тестов (кросс сборка при помощи mingw):
- время сборки с предварительной компиляцией хэдера "средствами qmake":
real 0m29.620s
user 0m10.125s
sys 0m1.956s

- сборка полностью всего проекта за исключением хэдера созданного в предидущем тесте:
real 0m12.819s
user 0m6.512s
sys 0m1.420s

получается что кросс сборка mingw32-g++ 3.4.5 быстрее чем g++ 4.0.2, если не надо пред компилить хэдер =)))

зы Еще раз ОГРОМНОЕ Пасибо

12:24 PM  
Blogger LestorN сказал(а)...

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

12:51 PM  

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница