Я замерил время на прекомпилиров

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
ask
In need of some credit
In need of some credit
Posts: 7
Joined: Sun Jul 29, 2007 3:39 pm

Я замерил время на прекомпилиров

Post by ask » Sun Jun 29, 2008 6:18 pm

я использую CodeBlocks + MinGW + WxWidgets 2.8.7 на WinXP SP2, P4/512 Мб.

простая прога:
main.cpp (#include main.h, frame.h)
main.h (#include frame.h)
frame.cpp (#include frame.h)
frame.h

ТЕСТ №1
без прекомпиляции заголовков, включены только нужные заголовки wx/app.h, wx/intl.h и т.п.

полная компиляция - 16 сек.
изменение в main.cpp - 11 сек.
изменеие в frame.cpp - 13 сек.
изменение в frame.h - 19 сек.

ТЕСТ №2
без прекомпиляции заголовков, #define WX_PRECOMP, #include wx/wxprec.h

полная компиляция - 26 сек.
изменение в main.cpp - 15 сек.
изменеие в frame.cpp - 18 сек.
изменение в frame.h - 29 сек.

ТЕСТ №3
прекомпиляция заголовков, #define WX_PRECOMP, #include wx/wxprec.h

Image

полная компиляция - 42 сек.
изменение в main.cpp - 11 сек.
изменеие в frame.cpp - 12 сек.
изменение в frame.h - 45 сек.

-------------------------------------------------------------

Затрудняюсь понять на какой Х тогда нужны прекомпилированные заголовки, если мой простой тест показывает, что без них все работает в 2-3 раза быстрее? где я мог допустить ошибку, которая скрывает от меня преимущества прекомпилированных заголовков?

PS. кстати, вариант с прекомпилированными заголовками кроме всего прочего на каждый заголовок создает прекомпилированный заголовок на 50 мегов! Это у меня простоейший проект будет выходить на 1Гиг! ж*па какая-то...
Attachments
preh.gif
preh.gif (9.07 KiB) Viewed 1116 times

van_user
Experienced Solver
Experienced Solver
Posts: 55
Joined: Wed Jun 11, 2008 9:28 pm
Location: UA

Post by van_user » Thu Jul 03, 2008 1:35 am

Насколько я понимаю, прекомпилированные заголовки следует использовать для редко изменяемых исходников ( wx.h). В остальных случаях с ними лучше не связываться. ( в gcc файлы для которых выполняется прекомпиляция указываются в makefile - там где расширение получаемого файла gch).
Win XP (SP0), mingw, wx 2.9.0

Post Reply