LINUX.ORG.RU

Скорость компиляции в линукс на с++

 ,


0

4

Вот эти все системные шаблоны типа «string», «vector» и проч. они компилятся один раз и лежат в кеше, или каждый раз заново? А нафига, ведь их никто менять не будет. Я думаю, что основное время компиляции уходит на шаблоны, если самая примитивная программа компилится секунд 30.



Последнее исправление: Lzzz (всего исправлений: 1)

Ответ на: комментарий от anonymous

Диалог с 5-летним ребенком.

Там нет допущения. Просто убери «допустим» - оно там ничего не значит.

никакого УБ не существует и никакого «документированного» поведения тоже.

Вот тебе новый тезис - ничего не изменилось. В С++ никакого УБ нет и никакого «документированного» тоже.

Допустим - там значит не то, что я допускаю. Я предлагаю сектанту допустить такую возможность.

minihic112
()
Ответ на: комментарий от minihic112

ты > Допустим

я > Это твое допущение

ты > Нет, твоё.

ты> Там нет допущения.

Скоро диалог станет монологом ребенка с синдромом дефицита внимания.

anonymous
()

Действительно, только клона Луговского не хватало на сегодняшнем ЛОРе.

anonymous
()
Ответ на: комментарий от anonymous

И, в чём проблема, маня?

ты > Допустим

Нет, такого не было. Сектант врёт. Там было это сказано не в контексте того, что я это допускаю. Мне не нужно это допускать. Я призываю сектанта выйти из под гнёта пропаганды, которая ему внушила «есть» путём допущения обратного и пытки для себя объяснить причины существования.

я > Это твое допущение

Ты обгадился, оно не моё. О чём тебе и сообщили.

ты > Нет, твоё.

Ну да, это допущение твоё как жертвы пропаганды, которая тебе внушила обратное.

ты> Там нет допущения.

Да, там его нет. Там есть слово «допустим», но нет того смысла, который данный клоун пытается в него вложить.

minihic112
()
Ответ на: комментарий от minihic112

Было бы интересно посмотреть на вариант разработки, где вместо кучи файлов .o в результате создавался бы один большой препроцесснутый исходник с правильно расставленными объявлениями.

anonymous
()
Ответ на: комментарий от anonymous

Причем для существующего кода, можно в принципе нарисовать обёртку, прикидывающуюся компилятором и посмотреть на это.

anonymous
()
Ответ на: комментарий от anonymous

в результате создавался бы один большой препроцесснутый исходник с правильно расставленными объявлениями.

Эту не проблема в С++. Есть inline. В гцц есть -fwhole-program - автоматом везде расставляет его вкупе со static. Поэтому можно тупо инлайнить исходники как инклюды - оно само всё сожрёт.

Проблема в том, что рядовое дерьмо организовано слишком нелепо, что-бы работать нормально.

А так любая ho-либа - это такой вариант. Лет 6 какой-то птушник ваял говнолабу на С++. Там птушники соревновались во времени сборки сравнивая с растом.

Дак вот банальный скрипт «инклюдю все cpp» уменьшал время время сборки в 5 раз, а производительность в 2.

minihic112
()
Ответ на: комментарий от anonymous

Ну а в целом подписывайся на блог. Я собираюсь всё лето потратить на разработку нормальной инфраструктуры для C++.

Там как раз будет перевод частей шланга для нормальной работы в броузере. С ide нового поколения работающей в том числе и в вебе. Правда сомнительно, что я буду заниматься поддержкой какого-либо легаси дерьма. И кто-то за рамки моей инфраструктуры будет это юзать.

Но в любом случае пример достойный, а не какая-то лаба-огрызок. И какую-то реальную статистику с него можно получить. И если(и как) это будет работать для шланга - это будет работать для 95% крестовых проектов.

minihic112
()
Ответ на: комментарий от minihic112

Эту не проблема в С++. Есть inline. В гцц есть -fwhole-program

Ну так обёртка не зависит от компилятора и кода внутри, вот в чём соль, прописываешь её вместо компилятора в проект, а потом полученное собираешь как хочешь. Надо будет как-нибудь поробовать, посмотреть.

anonymous
()
Ответ на: комментарий от anonymous

Ну так обёртка не зависит от компилятора и кода внутри

Ты этого не сделаешь без изменения кода. В этом проблема. От компилятора она не зависеть не может. Тебе нужно либо менять код, либо менять логику работы компилятора. Третьего не дано.

minihic112
()
Ответ на: комментарий от minihic112

Ну а в целом подписывайся на блог. Я собираюсь всё лето потратить на разработку нормальной инфраструктуры для C++.

Девочки, записываемся на ноготочки (с)

anonymous
()
Ответ на: комментарий от anonymous

Не волнуйся, тем кто запишется всегда прирождённые поломои нужны. Ты не останешься без дела. Полы сами себя не помоют.

minihic112
()
Ответ на: комментарий от minihic112

Осенью отчет не забудь сдать эксперт клининговый, ладн котик?

anonymous
()
Ответ на: комментарий от minihic112

Я собираюсь всё лето потратить на разработку нормальной инфраструктуры для C++.

Там как раз будет перевод частей шланга для нормальной работы в броузере. С ide нового поколения работающей в том числе и в вебе.

Запомните этот твит поломои

anonymous
()
Ответ на: комментарий от minihic112

Эврибади дэнс виз ми! Скорость компиляции ТСу не понять. Образования мало.

Владимир

anonymous
()
Ответ на: комментарий от minihic112

Я собираюсь всё лето потратить на разработку

Ты вроде школу и шарагу уже закончил, или нет?

будет перевод частей шланга для нормальной работы в броузере. С ide нового поколения работающей в том числе и в вебе

Да не будет там ничего, все мы об этом знаем. Сольёшся, как и с блогом на плюсах

anonymous
()
1 сентября 2020 г.
Ответ на: комментарий от minihic112
Ну а в целом подписывайся на блог. Я собираюсь всё лето потратить на разработку нормальной инфраструктуры для C++.

Там как раз будет перевод частей шланга для нормальной работы в броузере. С ide нового поколения работающей в том числе и в вебе. Правда сомнительно, что я буду заниматься поддержкой какого-либо легаси дерьма. И кто-то за рамки моей инфраструктуры будет это юзать.

Но в любом случае пример достойный, а не какая-то лаба-огрызок. И какую-то реальную статистику с него можно получить. И если(и как) это будет работать для шланга - это будет работать для 95% крестовых проектов.

Лето уже прошло. Показывай нормальную инфраструктуру для С++

anonymous
()
Ответ на: комментарий от anonymous

Сразу после блога покажет, да.

anonymous
()
Ответ на: комментарий от intelfx

Скорость компиляции в линукс на с++

А при чём тут линукс? Плюсы везде одинаковые.

Как раз недавно мне попадалось: is msys2 gcc expected to be twice as slow as native linux toolchain? #2074

I have recently compared the performance of gcc toolchain running in msys2 (mingw64 bash) vs native linux when building mame. I was a bit shocked to see that the build time under Linux is almost twice as long: …

github: mame: C++: 98.0%

Конечно, дело не столько в плюсах, сколько в make и fork.

gag ★★★★★
()

А нафига, ведь их никто менять не будет.

И не только их, а ещё кучу всего. Это похоже на баг компиляторов. Он починен только в форке clang: zapcc

zapcc is a caching C++ compiler based on clang, designed to perform faster compilations. zapcc uses in-memory compilation cache in client-server architecture, remembering all compilation information between runs.

Форк был коммерческой разработкой. 2 года назад его открыли, но разработка, к сожалению, прекратилась.

gag ★★★★★
()
Ответ на: комментарий от gag

I was a bit shocked to see that the build time under Linux is almost twice as long:

Так «under Linux» или «under Windows»?

В табличке у него линукс быстрее.

Во-первых, сравнивать надо с нативными средствами, а не с костылепортом. А во-вторых, вообще при чём тут это? Моя реплика была к тому, что валидность вопроса ТСа не зависит от ОС.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Так «under Linux» или «under Windows»?

В табличке у него линукс быстрее.

Да, под виндой ещё медленнее.

Во-первых, сравнивать надо с нативными средствами, а не с костылепортом.

Сам компилятор mingw-w64-gcc нативный. Но да, проблема не столько в нём.

Моя реплика была к тому, что валидность вопроса ТСа не зависит от ОС.

А по сути зависит от экосистемы, которая разная в разных ОС.

gag ★★★★★
()

если самая примитивная программа компилится секунд 30.

На калькуляторе?

Dudraug ★★★★★
()

Так а собственно вопрос то в чем? Почему так а не иначе? Как все это дело ускорить? Или в чем?

bugfixer ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.