Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Самый быстрый C++ компилятор   Найти похожие ветки 

 
@!!ex ©   (2010-03-10 14:59) [0]

Нужен компилятор для С++, который максимально быстро компилирует сорсы.
Скорость работы программы и размеры кода значения не имеют.
Это нужно для скорения разработки.
Релиз мы можем любым компилятором собирать, это значения не имеет.
Спрашиваю здесь, потому что знаю, что почти все здесь имели и имеют дело с С++


 
Правильный$Вася   (2010-03-10 15:01) [1]

intel ?


 
crux   (2010-03-10 15:06) [2]

Ишь чего захотели. Это вам не Delphi. Если уж такой адский проект, то структурировать файлы для уменьшения вероятности правок на файл и правильно использовать precompiled headers пробовали?


 
Anatoly Podgoretsky ©   (2010-03-10 15:07) [3]

быстрый и C++ - это фантастика
Спрашивать надо наименее медленный


 
@!!ex ©   (2010-03-10 15:17) [4]

> [2] crux   (10.03.10 15:06)
> Если уж такой адский проект, то структурировать файлы для
> уменьшения вероятности правок на файл и правильно использовать
> precompiled headers пробовали?

Проект не адский, компилируетяся несколько секунд. Это долго.
Линкуется тоже не быстро.


> [3] Anatoly Podgoretsky ©   (10.03.10 15:07)

Ну да. Это и имел ввиду. :)


 
crux   (2010-03-10 15:19) [5]

@!!ex ©   (10.03.10 15:17) [4]

С жиру беситесь.


 
@!!ex ©   (2010-03-10 15:29) [6]

> [5] crux   (10.03.10 15:19)

Не вам судить


 
crux   (2010-03-10 15:32) [7]

@!!ex ©   (10.03.10 15:29) [6]

Почему же это?
Если все условия для инкрементальной компиляции/линковки соблюдаются (разумное структурирование по файлам, помещение всех больших библиотечных заголовочных файлов в прекомпилируемый заголовок), то проект должен компилироваться довольно быстро. В противном случае, вы просто не умеете пользоваться вашим компилятором. Разбирайтесь.


 
@!!ex ©   (2010-03-10 15:45) [8]

> [7] crux   (10.03.10 15:32)

http://ashemyakin.ru/qt-pch/
8 секунд сейчас. Ужасно медленно. Хотя бы в два раза сократить...


 
Anatoly Podgoretsky ©   (2010-03-10 15:52) [9]


> crux   (10.03.10 15:32) [7]

Так к нему еще и напильник нужен?


 
Игорь Шевченко ©   (2010-03-10 16:10) [10]

precompiled headers наше все


 
DVM ©   (2010-03-10 16:11) [11]


> @!!ex ©   (10.03.10 15:45) [8]

Придется тебе отвыкать от стиля работы в Delphi - 2 строки написал - компильнул, 2 строки написал - компильнул.


 
@!!ex ©   (2010-03-10 16:21) [12]

> [10] Игорь Шевченко ©   (10.03.10 16:10)

это да, но они не спасают.


> [11] DVM ©   (10.03.10 16:11)

А жаль. :(
Многих ошибок удается избежать при таком стиле...


 
KSergey ©   (2010-03-10 16:26) [13]

> @!!ex ©   (10.03.10 16:21) [12]
> Многих ошибок удается избежать при таком стиле...

неправда


 
Piter ©   (2010-03-10 16:27) [14]

DVM ©   (10.03.10 16:11) [11]
Придется тебе отвыкать от стиля работы в Delphi - 2 строки написал - компильнул, 2 строки написал - компильнул.


блин, а я вот тоже так привык к этому стилю... Никогда раньше не понимал, нафига в средах есть такое понятие, как "проверка синтаксиса", клацнул F9 - оно и синтаксис проверилось и все на свете сразу ))

Вот думаю - это вообще хорошо или плохо такая привычка? Понятное дело, что это плохая привычка для языков с "медленной" компиляцией, а вообще в целом?

Фактически, это сводится к тестированию правильности написания кода. С одной стороны, чем раньше замечена ошибка - тем лучше. С другой стороны, не слишком ли избыточно время проверки "каждые 2 строки" при том, что грамотный программер пишет зачастую безошибочно куда большее число строк.


 
KSergey ©   (2010-03-10 16:28) [15]

да и ошибки, выявляемые на этапе компиляции - самые дешевые (не в смысле "низкопробные").
самые дорогие все равно только через пол-года эксплуатации всплывают, и от количества компиляций точно не зависят.


 
Piter ©   (2010-03-10 16:28) [16]

@!!ex, извини... По ходу твой вопрос скоро все позабудут ))


 
KSergey ©   (2010-03-10 16:29) [17]

> KSergey ©   (10.03.10 16:28) [15]
> самые дорогие все равно только через пол-года эксплуатации
> всплывают, и от количества компиляций точно не зависят.

и именно уменьшение количества таких ошибок и говорит о качестве программиста.

Так что не туда копаем, считаю.


 
Sergey Masloff   (2010-03-10 16:35) [18]

@!!ex ©   (10.03.10 16:21) [12]
>Многих ошибок удается избежать при таком стиле...
Да ну, дело привычки...


 
@!!ex ©   (2010-03-10 16:38) [19]

> [18] Sergey Masloff   (10.03.10 16:35)

Когда я могу почти каждую строку протестировать - unit тесты становятся не нужны.
А на С++ полюбому придется юнит тесты писать, иначе будут проблемы.


 
crux   (2010-03-10 16:44) [20]

@!!ex ©   (10.03.10 15:45) [8]

Единственный совет здесь - смотреть на логи make-а, и экспериментировать с файлами на которых он долго задерживается/настройками компилятора и линкера.
Мог что-нибудь забыть/прописать лишний раз.


 
Anatoly Podgoretsky ©   (2010-03-10 16:45) [21]

> DVM  (10.03.2010 16:11:11)  [11]

Какое две строки, букву исправил - откомпилировал


 
Anatoly Podgoretsky ©   (2010-03-10 16:48) [22]

> KSergey  (10.03.2010 16:29:17)  [17]

У нас нет времени на отладку, проще писать сразу правильно.


 
Имяозер   (2010-03-10 16:55) [23]

Юнит-тесты не для того пишутся.


 
TUser ©   (2010-03-10 16:57) [24]


> @!!ex ©   (10.03.10 15:45) [8]
>
> > [7] crux   (10.03.10 15:32)
>
> http://ashemyakin.ru/qt-pch/
> 8 секунд сейчас. Ужасно медленно. Хотя бы в два раза сократить...

Ну у тебя и проблемы ... :)

По поводу ошибок. Я как-то для себя обнаружил, что если набирать текст программы в ФАРе, то ошибок будет меньше. Потому что становишься более внимательным. Ctrl+Space только не хвататет, но привыкнуть можно. А мелкие опечатки можно исправить в среде после того, как набрал строчек 200 кода.


 
DVM ©   (2010-03-10 17:03) [25]


> TUser ©   (10.03.10 16:57) [24]


> что если набирать текст программы в ФАРе, то ошибок будет
> меньше

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


 
Alkid ©   (2010-03-10 17:07) [26]


> @!!ex ©   (10.03.10 16:38) [19]
> Когда я могу почти каждую строку протестировать - unit тесты
> становятся не нужны. А на С++ полюбому придется юнит тесты писать, иначе будут проблемы.

Поясни, как ты "каждую строку протестируешь" без тестов? И что по-твоему юнит тесты такое и для чего?


 
@!!ex ©   (2010-03-10 17:31) [27]

> [26] Alkid ©   (10.03.10 17:07)

Юнит тесты - это цспециальные функции, которые вызывают тестируемый код с параметрами и проверяют правильность результата.

Я протестирую очень просто: выполню роль юнит теста, прогнав тестирование кода сразу.


 
Kerk ©   (2010-03-10 17:37) [28]

Макконнел пишет, что перекомпиляция для проверки правильности кода признак того, что программист не в полной мере понимает чего написал.


 
Имяозер   (2010-03-10 17:45) [29]

В первую очередь юнит-тесты нужны при правке кода (рефакторинг, исправление ошибок), чтобы проверить, что ничего не сломалось где-то.


 
Игорь Шевченко ©   (2010-03-10 17:49) [30]

Kerk ©   (10.03.10 17:37) [28]

Он про Delphi не пишет. К Delphi это не относится.


 
KSergey ©   (2010-03-10 17:50) [31]

> @!!ex ©   (10.03.10 17:31) [27]
> Я протестирую очень просто: выполню роль юнит теста, прогнав
> тестирование кода сразу.

Научи?


 
KSergey ©   (2010-03-10 17:51) [32]

> Игорь Шевченко ©   (10.03.10 17:49) [30]
> Он про Delphi не пишет. К Delphi это не относится.

Почему? ожно чуть развернутее написать.


 
Кто б сомневался ©   (2010-03-10 17:52) [33]


> DVM ©   (10.03.10 16:11) [11]
>
>
> > @!!ex ©   (10.03.10 15:45) [8]
>
> Придется тебе отвыкать от стиля работы в Delphi - 2 строки
> написал - компильнул, 2 строки написал - компильнул.


Причем даже при проектировании формы так делаю. Подвинул батон, поставил рамку - запускаю смотрю на реальном  - Design Time как то не доверяю..


 
Игорь Шевченко ©   (2010-03-10 18:09) [34]

KSergey ©   (10.03.10 17:51) [32]

У delphi быстрый компилятор. У всего остального, про что пишет МакКоннел, компилятор медленнее. Я не считаю, что просматривать вручую код программы на предмет ошибок есть хоть чего-то стоящая трата времени.


 
Kerk ©   (2010-03-10 18:13) [35]


> Игорь Шевченко ©   (10.03.10 18:09) [34]

А не надо просматривать. Надо сразу правильно писать. Благо программист - не секретарша, задачи печатать 400 знаков в минуту не стоит.


 
Alkid ©   (2010-03-10 18:13) [36]


> @!!ex ©   (10.03.10 17:31) [27]

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


> Игорь Шевченко ©   (10.03.10 18:09) [34]

По-моему ошибки компиляции - это тема, которую обсуждать среди серьезных программистов несерьезно.


 
Kerk ©   (2010-03-10 18:14) [37]

И речь ведь не о компиляции вообще, ибо ее не избежать, а о компиляции раз в минуту.


 
DVM ©   (2010-03-10 18:23) [38]


> а о компиляции раз в минуту.

Какая разница, раз в минуту, раз в 10 секунд, она ж все равно выполняется пару секунд. Ничего плохого в этом нет. Кому нравится - пусть компилирует. Вреда от этого нет.

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

С тем же успехом можно ратовать за отмену проверки орфографии в ворде.


 
Kerk ©   (2010-03-10 18:25) [39]


> DVM ©   (10.03.10 18:23) [38]
>
> > а о компиляции раз в минуту.
>
> Какая разница, раз в минуту, раз в 10 секунд, она ж все
> равно выполняется пару секунд. Ничего плохого в этом нет.
>  Кому нравится - пусть компилирует. Вреда от этого нет.

Ну как нет? Однажды попадает в руки медленный компилятор и проблемы проявляются. Вредные привычки не стоит культивировать и поощрять.


 
Игорь Шевченко ©   (2010-03-10 18:25) [40]


> А не надо просматривать. Надо сразу правильно писать


научи ?


 
Kerk ©   (2010-03-10 18:35) [41]


> Игорь Шевченко ©   (10.03.10 18:25) [40]
>
> научи ?

Ну я хз сколько ошибок в коде нужно делать, чтоб для этого понадобилась проверка раз в 2 минуты, а не 20, например.


 
Alkid ©   (2010-03-10 18:44) [42]


> Игорь Шевченко ©   (10.03.10 18:25) [40]
> научи ?

Хороший Code Insight позволяет устранять кучу проблем. Только С++ имеет родовую травму в виде идиотской системы включения файлов, что делает создание таких инструментов проблематичным.


 
Игорь Шевченко ©   (2010-03-10 18:53) [43]

Kerk ©   (10.03.10 18:35) [41]

А кто говорит о двух минутах ? Написал логический кусок кода, откомпилировал, радуешься.


> Хороший Code Insight позволяет устранять кучу проблем


Или показывать кучу проблем там, где их нет. Я в курсе, о том, что есть Code Insight.


> Только С++ имеет родовую травму в виде идиотской системы
> включения файлов, что делает создание таких инструментов
> проблематичным.


А как пишутся большие проекты на С, ты не в курсе ?


 
Kerk ©   (2010-03-10 18:55) [44]


> Игорь Шевченко ©   (10.03.10 18:53) [43]
>
> Kerk ©   (10.03.10 18:35) [41]
>
> А кто говорит о двух минутах ? Написал логический кусок
> кода, откомпилировал, радуешься.

Тут в теме говорят.
"Две строки написал - компильнул"


 
oldman ©   (2010-03-10 19:10) [45]


> Игорь Шевченко ©   (10.03.10 18:53) [43]
> Kerk ©   (10.03.10 18:35) [41]
>
> А кто говорит о двух минутах ? Написал логический кусок
> кода, откомпилировал, радуешься.
>
> Kerk ©   (10.03.10 18:55) [44]
> > Игорь Шевченко ©   (10.03.10 18:53) [43]
> Тут в теме говорят.
> "Две строки написал - компильнул"


Иногда и две строки - большой логический кусок :)))


 
Alkid ©   (2010-03-10 19:11) [46]


> Игорь Шевченко ©   (10.03.10 18:53) [43]
> Или показывать кучу проблем там, где их нет. Я в курсе,
> о том, что есть Code Insight.

Где как. Сейчас разрабатываю на C# в Visual Studio 2008 + Resharper, все просто шикарно. Там тебе и классный auto-complete и поиск ошибок "на лету", и статический анализ кода. Впечатления очень положительные. А работа на С++ с Visual Studio 2005 + Visual Assist оставили средние впечатления.


> А как пишутся большие проекты на С, ты не в курсе ?

Это очень смелое предположение с твоей стороны :)

На прошлой работе у нас была очень большая кодовая база на С/С++, помноженная на собственную систему сборки проектов на базе nmake. Для удобства работы программистов была возможность генерировать проекты/решения для Visual Studio 2003/2005. Однако на кодовой базе такого размера студия глючила и тормозила, что несильно облегчало работу. В итоге основной способ работы с исходниками был grep + notepad++ . С учетом развитых возможностей препроцесора поиск интересующих определений иногда становился... очень творческим процессом. Сборка проектов занимала о 10 минут :)

Все это приучило к некоторой дисциплине, так что поднятая тема вызывает некоторое непонимание :) Культурный барьер, так сказать.


 
@!!ex ©   (2010-03-10 19:18) [47]

> [35] Kerk ©   (10.03.10 18:13)
> А не надо просматривать. Надо сразу правильно писать. Благо
> программист - не секретарша, задачи печатать 400 знаков
> в минуту не стоит.

Проверка синтаксиса меня как раз мало волнует.
Современные IDE для С++ не требуют компиляции для того чтобы подчеркнуть ошибочный код.
Речь о проверке именно логики работы.
Я могу откомпилировать, нажать на кнопку и посмотреть как работает. В дельфи вся операция занимает времени меньше чем одна лишь компиляция на Сях. Собственно об этом речь. Я не считаю такую проверку плохой привычкой.

P.S.
Вот интересно, что мешает сделать IDE, которая в фоне собирает модули которые программист сейчас НЕ редактирует?
Благо ядер много, и в процессе написания кода - почти полностью бездействуют. Компиляция была бы мгновенной.
Я ради такой фишки купил бы четырехядерник. :(


 
@!!ex ©   (2010-03-10 19:20) [48]

> С учетом развитых возможностей препроцесора поиск интересующих
> определений иногда становился... очень творческим процессом.
> Сборка проектов занимала о 10 минут :)

Удобно было?


 
DVM ©   (2010-03-10 19:20) [49]


> Вот интересно, что мешает сделать IDE, которая в фоне собирает
> модули которые программист сейчас НЕ редактирует?

Я сижу смотрю на код модуля и думаю. В любое мгновение я могу что то изменить. От этого модуля зависит еще 100 других. Я редактирую его или нет?


 
@!!ex ©   (2010-03-10 19:22) [50]

> [36] Alkid ©   (10.03.10 18:13)
> Ценность юнит тестов в том, что их можно быстро прогнать
> когда угодно. Их основное назначение - быстро обнаружить
> ломающее изменение, проведенное при рефакторинге или модификации
> прогаммы. То, что ты говоришь, никак не заменяет юнит тесты.
> Ты совершенно напрасно помянул их в контексте своей проблемы.

Вот как раз применимо к дельфи заменяет. Быстрее првоести несколько компиляций и запусков, чем писать отдельный юнит тест.


 
@!!ex ©   (2010-03-10 19:22) [51]

> [49] DVM ©   (10.03.10 19:20)
> От этого модуля зависит еще 100 других. Я редактирую его
> или нет?

Если h редактируешь, то зависят только те, кто его использует.
Если cpp то вообще никто не зависит.


 
@!!ex ©   (2010-03-10 19:24) [52]

> [49] DVM ©   (10.03.10 19:20)
> В любое мгновение я могу что то изменить.

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


 
Игорь Шевченко ©   (2010-03-10 19:27) [53]

Alkid ©   (10.03.10 19:11) [46]


> Это очень смелое предположение с твоей стороны :)


Это был вопрос, а не предположение.

Я к чему спрашивал, в свое время приходилось принимать участие. Было это в конце 80-ых, начале 90-ых, соответственно, никаких нахрен Visual Studio, Code Insight-ов и прочих IDE не было. Да и откуда в то время возьмутся IDE на Unix и на VAX/VMS, на PC был Turbo C - максимум удобств по редактированию и компиляции. Но небыстрой.

И ничего, знаете ли, писались проекты, и неплохие и немаленькие :)


 
Alkid ©   (2010-03-10 19:28) [54]


> @!!ex ©   (10.03.10 19:22) [50]

Нет, ты что-то путаешь. Вот смотри - ты написал код, покрыл его тестами. Теперь любая модификация проверяется одним кликом мыши. Тесты проходят - значит все хорошо. Если что-то сломал, то тест сразу это покажет. Тестов в хорошем проекте сотни. Иногда тысячи. Сколько у тебя времени займет перепроверять все руками?

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


 
Piter ©   (2010-03-10 19:30) [55]

Кто б сомневался ©   (10.03.10 17:52) [33]
Подвинул батон, поставил рамку - запускаю смотрю на реальном  - Design Time как то не доверяю..


Точно, точно. Так и бывает )))


 
Piter ©   (2010-03-10 19:33) [56]

Kerk ©   (10.03.10 18:25) [39]
Однажды попадает в руки медленный компилятор и проблемы проявляются. Вредные привычки не стоит культивировать и поощрять.


не стоит изучать ООП. Потому что однажды попадет в руки компилятор без поддержки ООП и проблемы начнутся.

Не стоит использовать автоформатирование класса, потому что однаэды попадет в руки среда без поддержки этого и проблемы начнутся.

Логика, думаю, понятна? Имхо, если нечто позволяет удобно делать что-то, этим надо пользоваться, а не отказываться от этого насильно из-за того, что в другом нечто этого может не быть, а ты блин оказывается уже привык.


 
Piter ©   (2010-03-10 19:33) [57]

Собственно, отличнейшая аналогия:

DVM ©   (10.03.10 18:23) [38]
С тем же успехом можно ратовать за отмену проверки орфографии в ворде.


 
@!!ex ©   (2010-03-10 19:34) [58]

> [54] Alkid ©   (10.03.10 19:28)
> Сколько у тебя времени займет перепроверять все руками?

Зачем все проверять? Только то, что изменилось.
Вероятно я не понимаю смысл юнит тестов, потому что в моей области они почти не применяются.


 
Alkid ©   (2010-03-10 19:36) [59]


> Игорь Шевченко ©   (10.03.10 19:27) [53]
> Это был вопрос, а не предположение.

Ладно, проехали :)


> И ничего, знаете ли, писались проекты, и неплохие и немаленькие :)

И у вас кто-то сокрушался, что нельзя проект за 2 секунды пересобрать?

P.S. К программистам, которые без IDE ничего сделать не могут, я сам отношусь негативно.


 
Pavia ©   (2010-03-10 19:40) [60]


> Нужен компилятор для С++, который максимально быстро компилирует
> сорсы. Скорость работы программы и размеры кода значения
> не имеют.

Насколько помню буильдер с отключенной оптимизацией компилирует ни чуть не дольше Delphi. Только давно это было возможно на старой версии.


 
Mystic ©   (2010-03-10 19:41) [61]


> Тут в теме говорят.
> "Две строки написал - компильнул"


А чем плохо? Например, не так давно я написал нечто такое:


var
 Handles: array[0..1] of THandle;
 ExitEvent: THandle absolute Handles[0];
 MonitorEvent: THandle absolute Handles[1];  


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

Кстати, в C++ при работе с многоэтажными шаблонами часто такой возможности не хватает. Ну не могу я вывести, нужен конструктор по умолчанию в классе или нет, проще запустить и проверить...


 
Anatoly Podgoretsky ©   (2010-03-10 19:54) [62]

> Kerk  (10.03.2010 18:25:39)  [39]

Вот тогда и отучится, а пока ни к чему.

--


 
Anatoly Podgoretsky ©   (2010-03-10 19:55) [63]

> Игорь Шевченко  (10.03.2010 18:25:40)  [40]

Этому тридцать лет надо учиться.

--


 
Anatoly Podgoretsky ©   (2010-03-10 19:56) [64]

> Alkid  (10.03.2010 18:44:42)  [42]

Зато в C#/VB.NET отличный Code Insight, лучше Дельфи

--


 
Anatoly Podgoretsky ©   (2010-03-10 19:58) [65]

> Alkid  (10.03.2010 19:11:46)  [46]

Хорошее оно развращает.

--


 
Anatoly Podgoretsky ©   (2010-03-10 20:03) [66]

> Alkid  (10.03.2010 19:28:54)  [54]

А сколько времени займет написание тестов и вопрос о их правильности, Но я ничего не имеют против них или их пользы, скорее наоборот.

--


 
Anatoly Podgoretsky ©   (2010-03-10 20:04) [67]

> Piter  (10.03.2010 19:30:55)  [55]

Так редактор форм на мой взгляд стал хуже, особенно это касается местоположения на экране.

--


 
Игорь Шевченко ©   (2010-03-10 20:09) [68]

Alkid ©   (10.03.10 19:36) [59]

А у нас не пересобирали весь проект целиком. Несколько миллионов строк на тех мощностях собирать по требованию - это нонсенс. Так как проект был модульный, собирали, натурально, по модулям, файлы, которые будут влиять на все модули, написали и протестировали одними из первых, так что одного изменения, которое затронет все, не было никогда. Часть затронет - так часть пересоберется относительно быстро. Тем более, никогда не собиралось под все системы сразу - максимально целевой системой изначально был Unix, под нее собиралось чаще всего, а под PC и VAX никогда все не собиралось - модули собирались, проверялись, возможно с разбросом по времени, но, опять же, основные модули практически не менялись с начала разработки.

Благо ТЗ было достойное.


 
Alkid ©   (2010-03-10 20:20) [69]


> @!!ex ©   (10.03.10 19:34) [58]

Очень рекомендую ознакомиться, действительно хорошая вещь.


> Anatoly Podgoretsky ©   (10.03.10 20:03) [66]

Безусловно. Выработать высокую культуру разработки с применением юнит-тестов сложно. Я сам еще далеко не освоил это искусство и не стесняюсь по этому поводу спрашивать консультации у старших товарищей.


> Игорь Шевченко ©   (10.03.10 20:09) [68]

Ну, я уже работал в эпоху более быстрых компьютеров, когда отдать всю пересборку на откуп nmake, автоматически обеспечивающему инкрементальность, дешевле, чем самому решать, что пересобирать, а что нет.

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

P.S. А что за проект вы делали такой?


 
Anatoly Podgoretsky ©   (2010-03-10 20:28) [70]

> Alkid  (10.03.2010 20:20:09)  [69]

Я слышал такое мнение, что юнит тесты должны писаться до "юнитов"

--


 
Alkid ©   (2010-03-10 20:32) [71]


> Anatoly Podgoretsky ©   (10.03.10 20:28) [70]

Это один из подходов. Скажем так, ортодоксальная ветвь Test Driven Development.


 
Игорь Шевченко ©   (2010-03-10 20:45) [72]

Alkid ©   (10.03.10 20:20) [69]


> P.S. А что за проект вы делали такой?


кросс-систему.


> И все же, даже удачный опыт разработки больших проектов
> не означает, что заголовочные файлы - это не зло. :) Время,
>  потраченное на долбание с ними можно было потратить с большей
> пользой :)


Да как-то не испытывалось особенного долбания. Может, проектирование было правильное ? :)


 
Anatoly Podgoretsky ©   (2010-03-10 20:56) [73]

> Игорь Шевченко  (10.03.2010 20:45:12)  [72]

Правильность портит чистоту эксперимента.


 
Харакири   (2010-03-10 21:32) [74]

RAID-0 из 2-х SSD Intel X25-E


 
@!!ex ©   (2010-03-10 21:59) [75]

> [74] Харакири   (10.03.10 21:32)

Что это даст? Компиляция в процессор упирается


 
Eraser ©   (2010-03-10 22:32) [76]

> [47] @!!ex ©   (10.03.10 19:18)


> Вот интересно, что мешает сделать IDE, которая в фоне собирает
> модули которые программист сейчас НЕ редактирует?

такую IDE сделали - Делфи называется ))


 
Alkid ©   (2010-03-10 23:03) [77]


> Игорь Шевченко ©   (10.03.10 20:45) [72]
> Да как-то не испытывалось особенного долбания. Может, проектирование
> было правильное ? :)

Вполне допускаю. У нас там была своя организационная специфика, не способствующая порядку.


 
GDI+   (2010-03-10 23:25) [78]


> Piter ©   (10.03.10 16:27) [14]
>
> DVM ©   (10.03.10 16:11) [11]
> Придется тебе отвыкать от стиля работы в Delphi - 2 строки
> написал - компильнул, 2 строки написал - компильнул.
>
> блин, а я вот тоже так привык к этому стилю... Никогда раньше
> не понимал, нафига в средах есть такое понятие, как "проверка
> синтаксиса", клацнул F9 - оно и синтаксис проверилось и
> все на свете сразу ))


Угу, а потом в большом проекте стиль - один баг поправили, два добавили.


 
GDI+   (2010-03-10 23:39) [79]


> @!!ex ©   (10.03.10 14:59)
>
> Нужен компилятор для С++, который максимально быстро компилирует
> сорсы.
> Скорость работы программы и размеры кода значения не имеют.
>
> Это нужно для скорения разработки.
> Релиз мы можем любым компилятором собирать, это значения
> не имеет.
> Спрашиваю здесь, потому что знаю, что почти все здесь имели
> и имеют дело с С++


Visual C++. В настройках проекта полностью отключить оптимизацию.


 
Харакири   (2010-03-11 00:58) [80]

Что это даст? Компиляция в процессор упирается

У тебя от удара головой (или чем ты там стучался?) о компиляцию на лбу остался отпечаток "процессор"? Посмотри внимательно в зеркало, там написано "дисковый ввод-вывод". Не видишь? Стукнись еще пару раз, да покрепче.

На 2-х WD Raptor в RAID-0 проект Delphi в 180К строк на Q6600 компилируется с первого захода 8 сек. После первой компиляции (читай: кеширования) - уже 3 сек. Учитывай, что компилятор не просто читает, но и пишет откомпилированный код во множество файлов, которые потом еще и линкует в большой файл, а на эти процессы кеш уже не так сильно влияет (часто он вообще отключен - надежность чаще важнее скорости). А когда ты подумаешь, сколько мелких файлов приходится читать/писать компилятору из/в разных/е участков/и диска, то поймешь, что SSD со временем доступа в 0,04 мс (сравни с позорными 14-16 мс на твоем нынешнем винте) и скоростью записи за 200 МБ/сек (не думаю, что у твоего нынешнего винта больше 50-60 МБ/сек на запись в среднем) ускоряет процесс в разы, а то и на порядки, особенно в RAID-0. Посчитай количество файлов в твоем проекте, если сможешь - то на сколько кусков на винте фрагментирован каждый файл, потом посчитай, сколько файлов создается/модифицируется при компиляции, просуммируй, перемножь, снова просуммируй, посмотри на полученный результат и удивись. Сначала теоретически. А потом, если жаба не задушит взять для работы пару хороших винтов,- практически.


 
TUser ©   (2010-03-11 01:09) [81]


> DVM ©   (10.03.10 17:03) [25]
>
>
> > TUser ©   (10.03.10 16:57) [24]
>
>
> > что если набирать текст программы в ФАРе, то ошибок будет
> > меньше
>
> Про производительность сего труда умолчим. С подсказками
> оно много быстрее, а если еще CnPack стоит так вообще небо
> и земля.
>

Может я какой-то неправильный, но обычно на воспоминания о том, как называется метод из N стандартно используемых и набор на клавиатуре его названия ухудит примерно 0,1% времени. Остальное - думаю, как и чего написать. Что такое CnPack не знаю, правда.


 
Германн ©   (2010-03-11 01:34) [82]


> Может я какой-то неправильный, но обычно на воспоминания
> о том, как называется метод из N стандартно используемых

Значение N не озвучено. Имхо.


 
@!!ex ©   (2010-03-11 08:12) [83]

> [80] Харакири   (11.03.10 00:58)

ПОставил RAM Disk, перенес на него все проекты. Скорость компиляции изменилась с 8 до 7 секунд. Не взлетело.


 
Anatoly Podgoretsky ©   (2010-03-11 08:50) [84]

> Харакири  (11.03.2010 00:58:20)  [80]

Требование RAID-0 говорит о том, что там не все чисто с чтением и временем доступа.


 
DVM ©   (2010-03-11 09:49) [85]


> TUser ©   (11.03.10 01:09) [81]


> Может я какой-то неправильный, но обычно на воспоминания
> о том, как называется метод из N стандартно используемых
> и набор на клавиатуре его названия ухудит примерно 0,1%
> времени

Если методов не 3 штуки, а сотни и написаны они год назад и не тобой, то вряд ли все будет столь радужно. CnPack в том числе это и расширенные подсказки при наборе кода, может подсказывать имена констант, функций-не методов, закрывает begin-end сам, улучшенная подсветка, выделение блоков верт линиями, там много всего. С ним создание кода идет намного шустрее.


 
Kerk ©   (2010-03-11 10:26) [86]


> улучшенная подсветка

Научить бы его еще подсвечивать имена функций и процедур, а то на фоне общей гирлянды совсем теряется.


 
KSergey ©   (2010-03-11 13:22) [87]

эх, везет же людям.
Раз кнопку, прифигачил к ней код (видимо быстро, раз 2 сек - критичное время) - и тут же проверил.
Тут, блин, дня два минимум колбасишь, чтобы реакцию от кнопки получить осмысленную... даже 5..10 минут компиляции - уже фигня, как раз кофей испил, до этого руки заняты.


 
Alkid ©   (2010-03-11 13:29) [88]


> KSergey ©   (11.03.10 13:22) [87]

Что и на чем ты пишешь?
o_O


 
KSergey ©   (2010-03-11 13:39) [89]

> Alkid ©   (11.03.10 13:29) [88]
> > KSergey ©   (11.03.10 13:22) [87]
> Что и на чем ты пишешь?

quik ru
почти на всем здесь обсуждаемом :)


 
@!!ex ©   (2010-03-11 14:02) [90]

> [87] KSergey ©   (11.03.10 13:22)

Я периодически упоминаю здесь эту ссылку, но все же упомяну еще раз:
http://www.youtube.com/watch?v=lQuG9ZWBGrs

Благодаря подходу две строчки-компиляция - программа не падает в AV ВООБЩЕ никогда. И все что прога делает она делает именно так, как от нее ждут.


 
Игорь Шевченко ©   (2010-03-11 14:19) [91]

@!!ex ©   (11.03.10 14:02) [90]


> Я периодически упоминаю здесь эту ссылку, но все же упомяну
> еще раз:
> http://www.youtube.com/watch?v=lQuG9ZWBGrs


А орфографический словарь в числе друзей не входит ?


 
@!!ex ©   (2010-03-11 14:21) [92]

> [91] Игорь Шевченко ©   (11.03.10 14:19)

Мне надо чтобы работало хорошо. :)
А по русскому языку у меня 3 было, есть и будет есть.


 
KSergey ©   (2010-03-11 14:31) [93]

> @!!ex ©   (11.03.10 14:02) [90]
> Благодаря подходу две строчки-компиляция - программа не падает в AV ВООБЩЕ никогда.

Похвастаться этим не могу.
Придется, видимо, уйти в монастырь, тут ты меня уделал по полной, признаю.


 
Anatoly Podgoretsky ©   (2010-03-11 14:33) [94]

> @!!ex  (11.03.2010 14:02:30)  [90]

Как все просто - пиши по две строчки и запускай и имеем безглючную программу.


 
Kerk ©   (2010-03-11 14:59) [95]


> @!!ex ©   (11.03.10 14:02) [90]
> Благодаря подходу две строчки-компиляция - программа не
> падает в AV ВООБЩЕ никогда.

А какая тут связь вообще?


 
@!!ex ©   (2010-03-11 15:22) [96]

> [93] KSergey ©   (11.03.10 14:31)

На самом деле я слукваил. AV легко добиться если подсунуть ей файл с кривым содержанием. ;) Также как делали с прогой для тестов.


> [95] Kerk ©   (11.03.10 14:59)
> А какая тут связь вообще?

Тщательное тестирование - панацея от всех бед.


 
Kerk ©   (2010-03-11 15:25) [97]


> @!!ex ©   (11.03.10 15:22) [96]
> Тщательное тестирование - панацея от всех бед.

Какая связь между компиляцией и тестированием?


 
@!!ex ©   (2010-03-11 15:31) [98]

> [97] Kerk ©   (11.03.10 15:25)

За то время пока компилируется С++ проект я успеваю три раза откомпилировать и проверить работоспособность под Дельфи. Я думал связь очевидна.
Подход: много написать, а потом за раз оттестировать работает хуже.


 
KSergey ©   (2010-03-11 15:31) [99]

> @!!ex ©   (11.03.10 15:22) [96]
> На самом деле я слукваил. AV легко добиться если подсунуть
> ей файл с кривым содержанием.

ну вот тебе и здрасьте
ладно, тогда не пойду в монастырь

так если мне не подсовывать кривой ini-файл и не посылать кривых транзакций - так и я тоже не свалюсь ни в жисть.


 
@!!ex ©   (2010-03-11 16:01) [100]

> [99] KSergey ©   (11.03.10 15:31)

Ок. Будем считать что здесь все пишут прямой и красивый код.
А тот быдло софт, что весь в утечках памяти и в AV через час после запуска при отсутсвии активности, пишет кто-то другой, кто на это ресурсе не расскзывает о том, как нужно писать программы.


 
Anatoly Podgoretsky ©   (2010-03-11 16:15) [101]

> @!!ex  (11.03.2010 15:22:36)  [96]

Так ты же предлагаешь заменить тщательное, частым - ведь это не одно и тоже.


 
@!!ex ©   (2010-03-11 16:18) [102]

> [101] Anatoly Podgoretsky ©   (11.03.10 16:15)

Не заменить, а дополнить. Где я про замену говорил?


 
@!!ex ©   (2010-03-11 17:31) [103]

MSVC++ с полностью отключенными оптимизациями + Precompiled Headers + Ram Disk дает вполне себе хороший результат. Порядка секунды. Проблемы уже в линковку упираются.


 
Piter ©   (2010-03-11 18:08) [104]

а как ram disk создаешь?


 
@!!ex ©   (2010-03-11 18:19) [105]

Super Speed Ram Disk
+
Allway Sync для периодического сбрасывания кода на энергонезависимый носитель



Страницы: 1 2 3 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.77 MB
Время: 0.063 c
2-1265397112
И. Павел
2010-02-05 22:11
2010.08.27
Как проиграть несколько звуков из ресурса?


2-1270481004
Fantasy
2010-04-05 19:23
2010.08.27
Shortcut на рабочем столе. Проблема с функцией GetDir(0,sPath);


2-1267385084
bag
2010-02-28 22:24
2010.08.27
массивы


2-1272893024
Сава. Ж
2010-05-03 17:23
2010.08.27
Подскажите компонент для выделения любой области?


2-1265790561
fford
2010-02-10 11:29
2010.08.27
spliter переносится за панель