Re[12]: Ускорение компиляции С++
От: NikeByNike Россия  
Дата: 19.10.10 18:27
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>>>дада, но эта информация у нее уже в голове, это быстро происходит


NBN>>Это при условии, что компилер помнит используемые хидеры. А если нет — то нужно всё парсить.


СМ>парсится один раз, потом хранится (где ниб в suo/ncb) и меняется при изм файлов


Это не вижалковский компилятор
Нужно разобрать угил.
Re[13]: Ускорение компиляции С++
От: Сергей Мухин Россия  
Дата: 19.10.10 18:43
Оценка:
Здравствуйте, NikeByNike, Вы писали:

СМ>>парсится один раз, потом хранится (где ниб в suo/ncb) и меняется при изм файлов


NBN>Это не вижалковский компилятор


ну это проблема среды. если нет — так нет. При полном перестроении зависимость и не нужна
---
С уважением,
Сергей Мухин
Re[13]: Ускорение компиляции С++
От: CreatorCray  
Дата: 19.10.10 20:09
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Это не вижалковский компилятор

А какой?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Ускорение компиляции С++
От: Pavel Dvorkin Россия  
Дата: 20.10.10 04:27
Оценка:
Здравствуйте, NikeByNike, Вы писали:

PD>>Не знаю как в твоем компиляторе, но VS проверяет не файлы, а их дату и время. Если obj более поздний, чем cpp — значит, не надо компилировать.


NBN>Не. Она так же проверяет все связанные с cpp хидера. Иначе при изменении хидера не происходило бы перекомпиляции (у других компилеров такое бывает).


Ну и жедера тоже, конечно.
With best regards
Pavel Dvorkin
Re: Ускорение компиляции С++
От: Сергей Мухин Россия  
Дата: 22.10.10 10:40
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Пробую разные способы ускорить компиляцию.


Случайно нашел в студии 2010 ключик, который показывает таймирование, что-то вроде такого:

1> 1 ms MakeDir 11 calls

1> 2 ms WriteLinesToFile 4 calls
1> 2 ms SetEnv 4 calls
1> 15 ms CppClean 1 calls
1> 45 ms RC 1 calls
1> 305 ms Link 1 calls
1> 692 ms BSCMake 1 calls
1> 1063 ms CL 2 calls

может пригодиться

Tools\Options...\Projects and Solutions\VC++ Project Settings\Build Timing
---
С уважением,
Сергей Мухин
Re: Ускорение компиляции С++
От: Ka3a4oK  
Дата: 23.10.10 12:21
Оценка: 4 (1)
Intermediate папку делал на "диске" в оперативной памяти — прирост был заметный.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re[3]: Ускорение компиляции С++
От: LMars Россия  
Дата: 25.10.10 03:10
Оценка:
Здравствуйте, NikeByNike, Вы писали:

D>>, да и процессор многоядерный даст огромный прирост, i7 например.


NBN>i5 стоит. Мне не кажется, что проц тут узкое место...


Это вам кажется. Проц при компиляции и есть узкое место!
См. загрузку проца во время компиляции — она практически всегда 100%. Если бы проседал дисковый ввод/вывод то проц бы не использовался так интенсивно.

Увеличение количества ядер и ключик /MP (VS компилятор) дают практически линейный прирост производительности.

А компилятор то поддерживает параллельное компилирование?
Re: Ускорение компиляции С++
От: Mr.Delphist  
Дата: 25.10.10 10:06
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Пробую разные способы ускорить компиляцию.

NBN>Есть некоторый проект весом порядка 5-10 Mb исходников. Кроме того он ссылается на порядка 20 Mb сторонних библиотек и SDK.

Неужели на полный билд этого проекта требуется более чем 10 минут?
Из собственного опыта: куда более достаёт работа линкера, когда даже на минорные правки система откликается молниеносной компиляцией, но долгим ворочанием объектников всяких либ, собирая монолитный EXE или "супер-главную DLL". Поэтому может быть полезно переосмыслить набор свой бинарей, хотя бы для debug-сборки.

NBN>Win7 (64), VS 2005, 4 гига (можно расширить до 8).


А смысл расширять есть? Всё равно 64-битной версии самой Студии пока нет и не предвидится, вроде.
Re[2]: Ускорение компиляции С++
От: NikeByNike Россия  
Дата: 25.10.10 10:20
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Неужели на полный билд этого проекта требуется более чем 10 минут?

10 минут — раздражают. Хочется чтобы оно происходило за минуту или быстрее

MD>Из собственного опыта: куда более достаёт работа линкера, когда даже на минорные правки система откликается молниеносной компиляцией, но долгим ворочанием объектников всяких либ, собирая монолитный EXE или "супер-главную DLL". Поэтому может быть полезно переосмыслить набор свой бинарей, хотя бы для debug-сборки.

Он и так переосмыслен.

NBN>>Win7 (64), VS 2005, 4 гига (можно расширить до 8).


MD>А смысл расширять есть? Всё равно 64-битной версии самой Студии пока нет и не предвидится, вроде.


Меня интересовал алгоритм создания диска в оперативной памяти и моунтинг его в качестве определённой папки на другом диске.
Нужно разобрать угил.
Re[3]: Ускорение компиляции С++
От: Mr.Delphist  
Дата: 25.10.10 10:39
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Здравствуйте, Mr.Delphist, Вы писали:


MD>>Неужели на полный билд этого проекта требуется более чем 10 минут?

NBN>10 минут — раздражают. Хочется чтобы оно происходило за минуту или быстрее

Уточню вопрос: это именно инкрементальный билд — 10 минут?
Если да, то что за фарш из шаблонов там применяется? Хотя, тогда вряд ли что-то заметно поможет, кроме IncrediBuild и прочих "облаков".
Если нет, то зачем на дев-машине всегда делать полные билды? Для этого билд-сервер можно припрячь.
Re[4]: Ускорение компиляции С++
От: NikeByNike Россия  
Дата: 25.10.10 11:19
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>>>Неужели на полный билд этого проекта требуется более чем 10 минут?

NBN>>10 минут — раздражают. Хочется чтобы оно происходило за минуту или быстрее

MD>Уточню вопрос: это именно инкрементальный билд — 10 минут?

Нет, это полный билд. Который приходится устраивать сравнительно часто по техническим причинам.

MD>Если нет, то зачем на дев-машине всегда делать полные билды? Для этого билд-сервер можно припрячь.

Недостаточно крупный проект.
Нужно разобрать угил.
Re[5]: Ускорение компиляции С++
От: Mr.Delphist  
Дата: 26.10.10 09:18
Оценка:
Здравствуйте, NikeByNike, Вы писали:

MD>>Если нет, то зачем на дев-машине всегда делать полные билды? Для этого билд-сервер можно припрячь.

NBN>Недостаточно крупный проект.

Это похоже уже на оффтоп, но ИМХО тут надо менять начальство, либо компанию вместе с начальством. У нас даже для самого маленького пилота найдется вся инфраструктура: билд-сервер, репозиторий кода, баг-трекер, портал SharePoint для документов. Ибо это поставлено у админов на поток, достаточно кинуть email с заявкой, они соберут всё как конструктор.
Re[6]: Ускорение компиляции С++
От: NikeByNike Россия  
Дата: 26.10.10 09:31
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>>>Если нет, то зачем на дев-машине всегда делать полные билды? Для этого билд-сервер можно припрячь.

NBN>>Недостаточно крупный проект.

MD>Это похоже уже на оффтоп, но ИМХО тут надо менять начальство, либо компанию вместе с начальством. У нас даже для самого маленького пилота найдется вся инфраструктура: билд-сервер, репозиторий кода, баг-трекер, портал SharePoint для документов. Ибо это поставлено у админов на поток, достаточно кинуть email с заявкой, они соберут всё как конструктор.


Компания замечательная. Меня админы уговаривали компилировать на билдсервере.
Я считаю, что для данного проекта это неудобно и неразумно. Особенно если удастся повысить скорость компиляции ещё немного
Нужно разобрать угил.
Re: Ускорение компиляции С++
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.11.10 06:58
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Есть некоторый проект весом порядка 5-10 Mb исходников. Кроме того он ссылается на порядка 20 Mb сторонних библиотек и SDK.

NBN>Win7 (64), VS 2005, 4 гига (можно расширить до 8).

Ага — переехать на VS2008 и заюзать ключик /MP.

Я после увиденного свернул все работы на 2005-ой. Хотя её компилятор меня полностью устраивал.

На 8 гигах будет реально комфортнее работать. У меня Vista x64.

---
Проект на чистом C++. Габариты приблизительно такие же — в районе 25MB исходников.

До поры до времени его мог асилить и компилятор от BCB5. Кстати — он в один поток компилировал практически с той же скоростью, что и VC9 на четырех ядрах. Правда бинарник получался в 2.5 раза тяжелее и он не работал
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[5]: Ускорение компиляции С++
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.11.10 07:07
Оценка:
Здравствуйте, ilvi, Вы писали:

D>>Кажется VS 2005 не умеет запускать паралельно компиляцию одного проєкта. Хотя тут пишут другое


I>И правильно пишшут. На рабочей машине двухядерный процессор. MSVC 2005 без ключа /MP у меня запускает один процес cl.exe, а с этим ключом два.


Во блин. А я свято верил, что эта фича появилась только в VS2008
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: Ускорение компиляции С++
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 05.11.10 07:56
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

NBN>>Есть некоторый проект весом порядка 5-10 Mb исходников. Кроме того он ссылается на порядка 20 Mb сторонних библиотек и SDK.

NBN>>Win7 (64), VS 2005, 4 гига (можно расширить до 8).

КД>Ага — переехать на VS2008 и заюзать ключик /MP.


КД>Я после увиденного свернул все работы на 2005-ой. Хотя её компилятор меня полностью устраивал.


Просмотрел сообщения этого топика.

Гы — оказывается VC8 тоже поддерживает /MP. Попробовал — действительно поддерживает и распараллеливает компиляцию.

Жаль потерянное время...

---
Век живи — век учись
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: Ускорение компиляции С++
От: kl_ Россия  
Дата: 05.11.10 18:17
Оценка:
вроде должно получиться, хотя "примаунтить как папку" я никогда не пробовал.
способ с RAM диском — хороший вариант ускорения компиляции,
но не стоит забывать и о "классике" — компиляции в несколько потоков.
начиная с VS2008 появилась соответствующая опция компилятора.
а так большие проекты обычно собираются не VS-проектами, а тулзами,
которые позволяют делать эти и другие удобные вещи (gnumake, scons, etc).
другие менее радикальные средства — это precompiled header и написание
кода с минимумом зависимостей.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.