
Alexey
26.06.2018
10:24:17
Только опции компиляции надо чтобы были едины.

Anatoly
26.06.2018
10:24:48
@I_vlxy_I ты точно получишь профит при инкрементном билде

Alexey
26.06.2018
10:25:06

Anatoly
26.06.2018
10:25:39
@I_vlxy_I у тебя, кстати, сколько субпроектов при сборке? у меня порядка 800

Google

Vhäldemar
26.06.2018
10:25:49
тогда надо ускорять тулзами, особенно под винду ж есть типа инкредибилд

Alexey
26.06.2018
10:25:52
Порядка 300

Anatoly
26.06.2018
10:26:21
Порядка 300
ну вся пересборка должна быть не более 10 минут, хотя если у тебя мета на мете сидить и метой погоняет, то it depends

Alexey
26.06.2018
10:26:32

Anatoly
26.06.2018
10:27:32

Alexander
26.06.2018
10:28:14
ну а ещё можно юзать всякие incredibuild

Alexey
26.06.2018
10:28:29
С учетом всех обстоятельств проще pch вкрутить.

Vhäldemar
26.06.2018
10:30:12

Igor
26.06.2018
10:30:46
если только речь не о CI который всех достал своей тормознутостью

Alexey
26.06.2018
10:31:02

Vhäldemar
26.06.2018
10:31:21
ну иногда, то да, но постоянно

Google

Alexey
26.06.2018
10:33:43
В общем я понял, что реалистично достичь по крайней мере 2x скорости сборки. 10% - это не достаточно.
спасибо

Anatoly
26.06.2018
10:34:31
надо мерять, пробовать.

Alexey
26.06.2018
10:34:48
Выше писали вроде

Anatoly
26.06.2018
10:35:16
полная пересборка с pch потребует времени и на создания pch, так что надо мерять
это как при профилировке, фиг наперед скажешь, что будет бутылочным горлышком

Ilia
26.06.2018
10:37:02

Anatoly
26.06.2018
10:37:31

Alexey
26.06.2018
10:37:54
gcc вообще может вместо КАЖДОГО хедера искать его скомпиленную версию

Anatoly
26.06.2018
10:38:02
указывать какой cpp файл отвечает за создание, и после для каждого cpp указывать какой pch использовать

Ilia
26.06.2018
10:39:11
cotire не поддерживает, это только на solution-ах можно
Это может быт. А так -- есть в PCH два шага, первый создаёт PCH на основе исходника -- их может быть сколько угодно.
Второй -- использует PCH при сборке исходного модуля. PCH при этом задаётся в параметрах вызова компилятора, их тоже может быть сколько угодно (на один исходный модуль только один)

Anatoly
26.06.2018
10:39:59

Ilia
26.06.2018
10:40:11

Vhäldemar
26.06.2018
10:40:46
надо смотерть что там у него в конфигах, т.к. UI может и не позволять, а в xml от msbuild может работать

Anatoly
26.06.2018
10:41:05

Ilia
26.06.2018
10:41:16

Vhäldemar
26.06.2018
10:41:27

Google

Ilia
26.06.2018
10:42:53

Alexey
26.06.2018
10:45:42

Ilia
26.06.2018
10:46:05

Alexey
26.06.2018
10:46:40
ну студийный проект же можно собрать без студии ?
да и вообще, ms компилятором можно и без солюшена/проекта собрать.

Vhäldemar
26.06.2018
10:47:51

Ilia
26.06.2018
10:47:53
Можно, но оно старается скопом кормить компилятору несколько модулей исходных разом, больше-лучше.
Чтобы 200 раз не запускать компилятор потом не освобождать всё.
Естественно, оно так может сделать только если параметры запуска компиля одни и те же.

Alexey
26.06.2018
10:49:14
Хм. Это даже похоже на то, как компилятор zapcc работает.

Vhäldemar
26.06.2018
10:49:41
ну, естественно, майки не могут придумать ничего своего ;)

Alexey
26.06.2018
10:49:59
zapcc появился позже ?

Vhäldemar
26.06.2018
10:50:06
не важно

Alexey
26.06.2018
10:50:15
и он вроде вообще сервисом в системе висит. даже когда не компиляет ничего.

Alexander
26.06.2018
10:50:32
да

Stanislav
26.06.2018
10:51:13

Grigor
26.06.2018
10:52:40
А как у zapcc с результурующим кодом и оптимизациями?

Vhäldemar
26.06.2018
10:53:07

Stanislav
26.06.2018
10:53:44
реально имеет какой-то еффект?
Having everything ready in-memory saves time, especially where the headers
are much more complex than the source code. With a short C++ program using
boost::numeric, boost::graph etc or Eigen, we see a 10-50x speedup.

Alexander
26.06.2018
10:53:57

Vhäldemar
26.06.2018
10:54:23

Google

Alexander
26.06.2018
10:54:29
так то тоже можно компиляцию ускорить, если всё держать в оперативке

Александр
26.06.2018
10:54:38
Вопрос к спецам:
Имеем невозможность сделать перегрузку:
template <class T> void f(std::function<void(T, int)>)
и
template <class T> void f(std::function<void(T, float)>)
Концепты что-то исправят? Хочется иметь возможность:
1) делать явную перегрузку по сигнатуре
2) сделать это perfecly: template <class T, Callable<void(T, int)> F> void f(F&& f) (как-то так себе вижу) - без создания std::function

Vhäldemar
26.06.2018
10:54:40
с шорт программкой модно много чего нагородить

Alexander
26.06.2018
10:54:55
так реальность у всех разная

Stanislav
26.06.2018
10:56:47

Alexander
26.06.2018
10:57:27
будем надеяться, что часть нароботок в апстрим протолкнут

Vhäldemar
26.06.2018
10:58:28

Alexander
26.06.2018
10:58:28
в рассылке шланга говорили, что раньше велись работы в схожем с zapcc направлении, но забили

Vhäldemar
26.06.2018
10:59:36
ещё раз - у всех разные кейсы, ну
я не спорю, но они явно пишут, что на маленьких синтетических примерах.
а что там в реальности и стоит ли оно перехода с гораздо блее популярного тулчейна - не понятно

Alexander
26.06.2018
10:59:57
а какой тест норм? компиляция ядра линуха?
похороникс вроде его юзает

Vhäldemar
26.06.2018
11:00:29

Stanislav
26.06.2018
11:00:45

Дед Пегас
26.06.2018
11:00:59
Можно тест на сборку бубса!

Vhäldemar
26.06.2018
11:01:02
буду знать

Alexey
26.06.2018
12:33:13
попробовал zapcc - gcc проект собирает за 5 минут, zapcc собирает проект за 2 минуты.