2. Замеры скорости сборки с и без Precompiled Headers будут?
3.
Идём на вкладку настроек «Advanced». Выбираем все конфигурации. В поле «Forced Included File» пишем:
StdAfx.h;%(ForcedIncludeFiles)
Теперь «stdafx.h» автоматически будет включаться в начало ВСЕХ компилируемых файлов. PROFIT!
Больше не потребуется писать #include «stdafx.h» в начале всех *.c/*.cpp файлов. Компилятор сделает это сам
Отличный совет тем, кому потом программу портировать на другую платформу/ос/компилятор…
4.
Выигрыш от того, что при препроцессировании не надо читать множество файлов и вставлять их друг друга намного больше, чем потери на синтаксический анализ лишних фрагментов кода.
Очень громкое заявление, которое ничем не подкреплено. Если разместить проект в оперативной памяти (RAMDisk), то чтение будет очень быстрым. Тем более, что в файл нужно подставить только один инлюд, а с Precompiled Headers будет вставлено очень много мегабайт текста, который нужно еще скомпилировать.
5. При наличие большого кол-во проблем, связанных с Precompiled Headers возникает вопрос об их целесобразности. Ну да, они дают N% ускорения, но есть же и другие способы повысить скорость компиляции, которые дадут больше ускорения. Например, если если система сборки cmake, то вместо того чтобы генерировать «MS Solution» можно сгенерировать ninja файл и собрать 1.5 раза*(из личного опыта на большом проекте) быстрее. Разместите файлы на RAMDisk, и вот еще прибавка к скорости, не меняя исходников.
6. А если нужно провести рефакторин, то нужно планировать и рефакторинг хидеров, так как они будут либо часто пересобираться либо вообще не нужны. Что опять же усложнит процесс разработки.
итого: я не против Precompiled Headers, я призываю подумать 100500 раз и доказать себе, что оно нужно в конкретном проекте и без него совсем ни как.
Поздравляю с новым опытом!
А вы сравнивали эффективность/удобство использования/кол-во найденых ошибок (PVS-Studio и CppCat) с другими анализаторами в новом для вас поприще. Переняли ли какие то идеи, например от cppcheck?
Возможно я не нашел в новой версии, но существует ли простой способ спрофилировать приложение по использованию времени центрального процессора и/или по памяти?
Я полагаю это сложная и возможно даже не нужная задачи, ибо если проект маленький то за пару часов все можно перенести руками. Если же нет, то скорее всего тулза не справится из — за сложности проекта и обилие все возможных сложностей/зависимостей, не говоря уже про то, что .vcproj практически к каждой версии студии свой. Более того, даже если тулза что то нагенерировала, то кто вам сказал что это то, что вам нужно. Тогда это придется проверять руками и редактировать, а значит появляется требования к качеству сгенерированно года… в общем это отдельный большой и сложный проект imho.
Наверное все таки это быстрая и качественна интеграция IDE с системой сборки(cmake/qbs/scons/waf), с подсказками и все такое:
Добавил файл в проект, оно само в cmake прописалось, само перегенерировало ninja файл и все это должно быть очень быстро, даже на больших проектах.
В qtcreator мне нравится скорость парсинга и то, что я могу очень быстро все собрать, так как есть поддержа ninja. Проверял на прокте opencv ;) В qtcreator уже есть поддержка cmake, однако всего лишь редактирование с подсказками, и если я написал свой макрос на cmake, то qtcreator уже не могет подсказать.
Да и памяти потребляет не очень много ;) (это был очень тяжелый и медленный камень в огород eclipse/java).
Важный момент с переключением: Debug/Release, gcc/clang/icc/что-то_еще и все такое.
Более того в cmake можно прописать сборку «с вариантами» — открываем cmake-gui, ставим галочки, что именно хотим собирать, жмем сгенерировать.
А как будет это реализовано у вас? В данный момент руками нужно перегенерировать cmake потом открывать среду и кодить…
cmake в данный момент, хоть и не идеальная система сборки, но очень популярная и то что ее поддерка одна из первых это большой плюс, но не стоит забывать и об остальных.(далекий roadmap)
«P.S. Жду, когда допилят qbs и вот он уже и должен спасти мир ...»
IMHO небольшой фидбек по увиденному в видео. Я достаточно много программирую на с++ и использую для этого qtcreator. Поэтому, небольшое «сравнение». То что прикручиваете cmake — это определенно хорошо. Однако не совсем понятно как обновлять cmake, в смысле мне нужно выходит из среды и перезапускать cmake? Если я в консоле создал файлики и поправил cmake, перегенерировал, IDE обновит свой енвайромент?
В какой то момент вы начали писать на c++11 — но вопрос скомпилируется ли это — скорее всего врятли, потому, как это нужно прописывать в cmake — добавить опцию "-std=c++11". Будет ли тесная связь среды с cmake. Будут ли подсказки для cmake?
Видео конечно небольшое, чтобы можно было понять все прелести новой IDE, да и пример из 4-6 файлов весьма небольшой, так что спорить трудно… "… мы показываем, как летает наша C++ IDE". Пробовали ли вы сравнивать, например, qtcreator и вашу IDE на больших проектах по скорости работы(парсинг, навигация по файлам, ...)? Бедет ли поддержка ninja?
Мне нравятся продукты вашей компании, но в данном видео я не увидел ничего, что меня могло побудить перейти на новую IDE. (я понимаю, что продукт чересчур молод)
Желаю удачи в написание новой IDE. Больше IDE хороших и разных!!!
2. Замеры скорости сборки с и без Precompiled Headers будут?
3.
Отличный совет тем, кому потом программу портировать на другую платформу/ос/компилятор…
4.
Очень громкое заявление, которое ничем не подкреплено. Если разместить проект в оперативной памяти (RAMDisk), то чтение будет очень быстрым. Тем более, что в файл нужно подставить только один инлюд, а с Precompiled Headers будет вставлено очень много мегабайт текста, который нужно еще скомпилировать.
5. При наличие большого кол-во проблем, связанных с Precompiled Headers возникает вопрос об их целесобразности. Ну да, они дают N% ускорения, но есть же и другие способы повысить скорость компиляции, которые дадут больше ускорения. Например, если если система сборки cmake, то вместо того чтобы генерировать «MS Solution» можно сгенерировать ninja файл и собрать 1.5 раза*(из личного опыта на большом проекте) быстрее. Разместите файлы на RAMDisk, и вот еще прибавка к скорости, не меняя исходников.
6. А если нужно провести рефакторин, то нужно планировать и рефакторинг хидеров, так как они будут либо часто пересобираться либо вообще не нужны. Что опять же усложнит процесс разработки.
итого: я не против Precompiled Headers, я призываю подумать 100500 раз и доказать себе, что оно нужно в конкретном проекте и без него совсем ни как.
А вы сравнивали эффективность/удобство использования/кол-во найденых ошибок (PVS-Studio и CppCat) с другими анализаторами в новом для вас поприще. Переняли ли какие то идеи, например от cppcheck?
39+30+27+21+14+7+10+18=166%
o_O
Должно быть 146, нет?
<sarcasm>
А я смогу это в инстаграмм выложить? А в вконтакт? А твитнуть смогу? Если нет, то не нужно…
</sarcasm>
З.Ы. Там только вроде не cmake…
Добавил файл в проект, оно само в cmake прописалось, само перегенерировало ninja файл и все это должно быть очень быстро, даже на больших проектах.
В qtcreator мне нравится скорость парсинга и то, что я могу очень быстро все собрать, так как есть поддержа ninja. Проверял на прокте opencv ;) В qtcreator уже есть поддержка cmake, однако всего лишь редактирование с подсказками, и если я написал свой макрос на cmake, то qtcreator уже не могет подсказать.
Да и памяти потребляет не очень много ;) (это был очень тяжелый и медленный камень в огород eclipse/java).
Важный момент с переключением: Debug/Release, gcc/clang/icc/что-то_еще и все такое.
Более того в cmake можно прописать сборку «с вариантами» — открываем cmake-gui, ставим галочки, что именно хотим собирать, жмем сгенерировать.
А как будет это реализовано у вас? В данный момент руками нужно перегенерировать cmake потом открывать среду и кодить…
cmake в данный момент, хоть и не идеальная система сборки, но очень популярная и то что ее поддерка одна из первых это большой плюс, но не стоит забывать и об остальных.(далекий roadmap)
«P.S. Жду, когда допилят qbs и вот он уже и должен спасти мир ...»
В какой то момент вы начали писать на c++11 — но вопрос скомпилируется ли это — скорее всего врятли, потому, как это нужно прописывать в cmake — добавить опцию "-std=c++11". Будет ли тесная связь среды с cmake. Будут ли подсказки для cmake?
Видео конечно небольшое, чтобы можно было понять все прелести новой IDE, да и пример из 4-6 файлов весьма небольшой, так что спорить трудно… "… мы показываем, как летает наша C++ IDE". Пробовали ли вы сравнивать, например, qtcreator и вашу IDE на больших проектах по скорости работы(парсинг, навигация по файлам, ...)? Бедет ли поддержка ninja?
Мне нравятся продукты вашей компании, но в данном видео я не увидел ничего, что меня могло побудить перейти на новую IDE. (я понимаю, что продукт чересчур молод)
Желаю удачи в написание новой IDE. Больше IDE хороших и разных!!!
Спасибо.
Экскурсия по городу завершена за 3 мин 14 сек!!! Это лучшее время!!! А значит у нас есть новый мировой рекорд…
</сарказм>