Russian Qt Forum
Ноябрь 22, 2024, 13:08
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Windows
>
Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе (Прочитано 15086 раз)
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #15 :
Август 04, 2014, 16:36 »
Цитировать
Какие преимущества дает QBS?
Большие.
Если проект большой (содержит кучу статических библиотекк, динамических библиотек, плагинов, екзешек и прочего),
то в QBS очень удобно настраивать все зависимости между ними и пр. пр. пр.
Удобно включать/отключать некоторые части проекта (например некоторыми переменными в проекте и прочее.)
При этом отключенная часть проекта отображается в QtCreator сереньким цветом.
Удобно делать "левые" штуки . Например, в винде можно написать некоторый модуль, который будет подписывать (signing)
нужные екзешни, dll-ки и прочее после их сборки и запаковки в инсталлер, к примеру. (конечно, если подписывание необходимо.
обычно это делают "нормальные" конторы
).
Удобно делать инсталляторы, например используя WiX и прочее.
В общем, все гибко и замечательно. Сначала немного непривычно - но потом втягиваешься и начинаешь от Qmake делать буэээ.
.
Записан
ArchLinux x86_64 / Win10 64 bit
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #16 :
Август 04, 2014, 17:02 »
Спасибо. Интересно.
Пока буду держать в уме, ибо не распространяю проекты
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #17 :
Август 04, 2014, 19:29 »
Цитата: kuzulis от Август 04, 2014, 16:36
Цитировать
Какие преимущества дает QBS?
Большие.
Если проект большой (содержит кучу статических библиотекк, динамических библиотек, плагинов, екзешек и прочего),
то в QBS очень удобно настраивать все зависимости между ними и пр. пр. пр.
Удобно включать/отключать некоторые части проекта (например некоторыми переменными в проекте и прочее.)
При этом отключенная часть проекта отображается в QtCreator сереньким цветом.
Удобно делать "левые" штуки . Например, в винде можно написать некоторый модуль, который будет подписывать (signing)
нужные екзешни, dll-ки и прочее после их сборки и запаковки в инсталлер, к примеру. (конечно, если подписывание необходимо.
обычно это делают "нормальные" конторы
).
Удобно делать инсталляторы, например используя WiX и прочее.
В общем, все гибко и замечательно. Сначала немного непривычно - но потом втягиваешься и начинаешь от Qmake делать буэээ.
.
По сравнению с CMake как оно? Можно ли там делать сложные штуки, типа функций? Есть ли там аналог find-модулей в стандартной поставке?
По теме:
По поводу тормознутости компиляции в винде, основная проблема на мой взгляд - это медленная файловая система и медленный запуск процесса. mingw-make порождает кучу подпроцессов в процессе исполнения, виндовое ядро явно не было оптимизировано для этого случая в отличие от unix.
Многопоточная компиляция помогает, но всё равно существенно не дотягивает до скорости компиляции под linux.
Записан
Гугль в помощь
Bepec
Гость
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #18 :
Август 04, 2014, 19:34 »
По-моему тут простая вещь и не надо хаять винду.
mingw сделан под linux.
MSVC сделан под винду.
В родных системах их скорость максимальна.
А креатор тормозит при любом компиляторе
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #19 :
Август 04, 2014, 20:17 »
Цитата: navrocky
По сравнению с CMake как оно?
Ну, попроще, ИМХО. Скажем так: более юзер-френдли, что-ли, более явно тут все (не то что в CMake - боже упаси). Я как-раз таки перевел свой проект из CMake на QBS.
Тоже метался в муках выбора, т.к. на CMake приходилось писать очень много кода. Да и QBS универсальне все-таки, ИМХО.
Перевел также некоторые Embedded под-проекты (основанные на Keil, IAR и пр.).
Чтобы одним махом компилить и собирать в пакеты сразу и Embedded часть и ОС-специфик и пр.
Цитата: navrocky
Можно ли там делать сложные штуки, типа функций?
Да.
Цитата: navrocky
Есть ли там аналог find-модулей в стандартной поставке?
Вроде как аналогом является Probe. Но, кажется, это еще допиливается. Я не использовал еще..
«
Последнее редактирование: Август 04, 2014, 20:22 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #20 :
Август 04, 2014, 20:25 »
Цитата: Bepec
А креатор тормозит при любом компиляторе
Зато не универсальна твоя студия. Да и что делать, если нет денег на нее? Как ты будешь собирать проект без студийного IDE?
А вот, используя QBS + Windows SDK можно собрать все что угодно, не имея всяких студий. И бесплатно - и сердито (конечно, можно и BAT-ники писать - но это не наш путь).
Записан
ArchLinux x86_64 / Win10 64 bit
Bepec
Гость
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #21 :
Август 04, 2014, 21:18 »
Microsoft Visual C++ (MSVC) — интегрированная среда разработки приложений на языке C++, разработанная фирмой Microsoft и поставляемая либо как часть комплекта Microsoft Visual Studio, либо отдельно в виде бесплатного функционально ограниченного комплекта Visual C++ Express Edition.
Я ответил на ваш вопрос?
PS имеется так же пара сайтов которые позволяют собрать любой проект на этом движке, но тут уже исходники отсылать надо
Записан
kamre
Частый гость
Offline
Сообщений: 233
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #22 :
Август 05, 2014, 06:25 »
Цитата: kuzulis от Август 04, 2014, 20:17
Тоже метался в муках выбора, т.к. на CMake приходилось писать очень много кода. Да и QBS универсальне все-таки, ИМХО.
А QBS умеет генерировать solution для MSVC, чтобы можно было нормально отладчиком пользоваться (а не тем косячным вариантом, что в QtCreator предлагается)?
Записан
alex312
Хакер
Offline
Сообщений: 606
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #23 :
Август 05, 2014, 07:11 »
Нет, qbs пока не генерирует никаких проектов. Хотя планы есть.
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #24 :
Август 07, 2014, 21:35 »
Цитата: Bepec от Август 04, 2014, 19:34
По-моему тут простая вещь и не надо хаять винду.
mingw сделан под linux.
MSVC сделан под винду.
В родных системах их скорость максимальна.
А креатор тормозит при любом компиляторе
MSVC под виндой компилит медленнее чем gcc в linux, не помогает ей даже IncrediBuild. Это факт. Mingw, конечно, еще медленнее чем MSVC.
Записан
Гугль в помощь
Fregloin
Супер
Offline
Сообщений: 1025
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #25 :
Август 18, 2014, 17:38 »
Я так и понял, что дело в ФС и ядре винды.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Почему сборка одного и тогоже проекта в 2 раза медленее в винде чем в линуксе
«
Ответ #26 :
Сентябрь 02, 2014, 14:13 »
Погробокопаю
Цитата: Fregloin от Август 18, 2014, 17:38
Я так и понял, что дело в ФС и ядре винды.
Дело не столько в ФС (хотя и в этом тоже), сколько в том, что рекурсивные makefile'ы - зло. Спавнить миллион процессов просто ради того, чтобы сделать стат всех файлов в проекте (для того, чтобы понять, что пересобирать) - не самая здравая затея
Цитата: navrocky от Август 04, 2014, 19:29
По сравнению с CMake как оно? Можно ли там делать сложные штуки, типа функций? Есть ли там аналог find-модулей в стандартной поставке?
1) Ф-ии пишутся на JS, как следствие можно сделать очень много всего. Правда, не очень часто надо, только когда пишутся кастомные Рулы/Трансормеры (правила генерации чего-л во что-л, например сгенерить из шаблона app_version_header.in.h хедер app_version_header.h)
2) Аналога find модулей нету и не планируется. Вернее сказать, частичным аналогом являются сами Модули - например зависимость от модуля Qt.core делает примерно то же, что и find_package(Qt* REQUIRED). Однако, для сторонних либ таких модулей нет - предлагается самому прописывать зависимости. Что не очень сложно, на самом деле - в том же линуксе инклюды видятся автоматом, а линкфлаги прописывать не надо (в отличие от цмейка) - достаточно прописать имя библиотеки в пропертю cpp.dynamicLibraries. Вообще, у модулей немножко другое назначение - помимо, собственно, линковки к либам, они (и это и есть основная фича) регистрируют новые Рулы - то, как qbs обрабатывает файлы определенного типа - для .cpp надо вызвать clang, для .ui - uic
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...