Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Hornet от Апрель 07, 2017, 14:20



Название: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 07, 2017, 14:20
Здравствуйте.
Столкнулся с такой проблемой.
Проект из 8-ми  графических форм для работы пользователя  с БД MySql.(Ввод-Вывод)Все работает. На  Xp и Win7/8/10.
 Проект весит 238мб.Мне пришлось засунуть в проект чуть ли не половина dll и плагинов qt. 
 Есть другие варианты или нет. ???




Название: Re: Как уменьшить размер проекта.
Отправлено: Alex Custov от Апрель 07, 2017, 14:26
а проект конечно же собран в debug? :D


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 07, 2017, 14:29
не reales


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 07, 2017, 14:30
проект работает без Qt Creator.


Название: Re: Как уменьшить размер проекта.
Отправлено: Alex Custov от Апрель 07, 2017, 14:32
проект работает без Qt Creator.

если проект использует только gui и sql, то ему будет достаточно Qt библиотек core, gui, widgets, sql, и плагинов platforms/qwindows, sqldrivers/sql и mysql библиотек для ЫЙД драйвера. Разве это весит 200 Mb? Покажи рекурсивный список файлов из дистрибутива проекта.


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 07, 2017, 16:25
если проект использует только gui и sql, то ему будет достаточно Qt библиотек core, gui, widgets, sql, и плагинов platforms/qwindows, sqldrivers/sql и mysql библиотек для ЫЙД драйвера. Разве это весит 200 Mb? Покажи рекурсивный список файлов из дистрибутива проекта.


Джедай и ты считаешь это норм 200Mb.В  Vs2015 аналогичный проект меньше весит
ДЫГс


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 07, 2017, 16:43
Да первый проект одна форма поиск по БД Больного  вес 68 Мб.
Ребят это многовато. ???
В Visual Studio был у меня проект инфокиоск 10 окон 8 Мб.
Я не могу понять Qt сам по себе такой тяжеловес.
И нужно тащить все dll за собой.


Название: Re: Как уменьшить размер проекта.
Отправлено: Old от Апрель 07, 2017, 16:53
В Visual Studio был у меня проект инфокиоск 10 окон 8 Мб.
Я не могу понять Qt сам по себе такой тяжеловес.
И нужно тащить все dll за собой.
А если вы к 8 Мб добавите весь рантайм вендовый, который нужен для работы вашей программы? :)


Название: Re: Как уменьшить размер проекта.
Отправлено: Alex Custov от Апрель 07, 2017, 17:39
Джедай и ты считаешь это норм 200Mb.В  Vs2015 аналогичный проект меньше весит

Он не должен весть 200 Mb. Типичный проект core+gui+widgets+mingw runtime весит порядка 25 Mb. Откуда 68 или 200? Вероятно это рантайм MySQL? Не знаю. Ты ведь не показал рекурсивный список файлов с их размерами.


Название: Re: Как уменьшить размер проекта.
Отправлено: PimenS от Апрель 07, 2017, 18:09
Да первый проект одна форма поиск по БД Больного  вес 68 Мб.
Ребят это многовато. ???
В Visual Studio был у меня проект инфокиоск 10 окон 8 Мб.
Я не могу понять Qt сам по себе такой тяжеловес.
И нужно тащить все dll за собой.

Может у вас там в 65 Мб мусора?

У меня проект (Основной модуль + 4 библиотеки) по управлению торговлей (это больше 100 форм документов и отчетов) меньше 10 Мб весит.
С библиотеками 56 Мб.


Название: Re: Как уменьшить размер проекта.
Отправлено: titan83 от Апрель 09, 2017, 19:14
Консольное приложение делал простенькое - попросили, чтобы все было "в комплекте". Итог: приложение - 20кБ, либы - 7МБ. Считаю - это нормально. А в линухе то же самое после докера получилось 27Мб, но зато без всяких игр "есть нужные либы или нет".
Всякие визуал студии вывозят по размеру за счет материнской ОС, которая напаривает на установку кучи "обновлений", т.е. могу себе позволить распространять только бинарник.
Ну а в твоем случае ситуация патовая: список файлов ты не даешь (видать, все настолько инновационно, что нужно NDA подписывать даже для просмотра листинга файлов))), а телепаты до сих пор в отпуске. Такие дела.


Название: Re: Как уменьшить размер проекта.
Отправлено: deMax от Апрель 10, 2017, 10:59
У меня проект 20метров exe файл весит(чистый, никаких дополнительных библиотек кроме основных user и kernel, проверяли в девственной винде на виртуалке): OpenGL, GUI(>30 форм), SQL...
Если библиотеки отдельно в пределах 50 где то, емнип.

p.s. Кстати, зашел в тему, так как думал, а вдруг есть способы как уменьшить размер exe файла? В институте все мои лабы на masm32 вообще от 8-50Кб весили(все с GUI на winapi). В тех где было много красивой анимации конечно весили побольше, как правило в пределах 5-10 мегабайт(вес анимации).


Название: Re: Как уменьшить размер проекта.
Отправлено: __Heaven__ от Апрель 10, 2017, 12:10
p.s. Кстати, зашел в тему, так как думал, а вдруг есть способы как уменьшить размер exe файла? В институте все мои лабы на masm32 вообще от 8-50Кб весили(все с GUI на winapi). В тех где было много красивой анимации конечно весили побольше, как правило в пределах 5-10 мегабайт(вес анимации).
А есть же средства, вроде как. https://upx.github.io/


Название: Re: Как уменьшить размер проекта.
Отправлено: deMax от Апрель 10, 2017, 14:16
А есть же средства, вроде как. https://upx.github.io/
Знаю, но это архиватор. (ужмет до ~38%, с 20Мб до 8, в 20 метрах 1Мб ресурсов png)


Название: Re: Как уменьшить размер проекта.
Отправлено: Alex Custov от Апрель 10, 2017, 20:39
ужимать UPX-ом в современном мире смысла не вижу. Гигабайты сейчас ничего не стоят, а скорость загрузки программы заметно уменьшиться.


Название: Re: Как уменьшить размер проекта.
Отправлено: Alex Custov от Апрель 10, 2017, 20:44
p.s. Кстати, зашел в тему, так как думал, а вдруг есть способы как уменьшить размер exe файла? В институте все мои лабы на masm32 вообще от 8-50Кб весили(все с GUI на winapi).

Твои лабы всё равно импортировали виндовые DDL-ки. То есть разница между "толстым" С++ экзешником собранным в VS на 100 Кб и твоим невелика, просто оверхед языка, и не более того.


Название: Re: Как уменьшить размер проекта.
Отправлено: deMax от Апрель 12, 2017, 08:38
ужимать UPX-ом в современном мире смысла не вижу. Гигабайты сейчас ничего не стоят, а скорость загрузки программы заметно уменьшиться.
Ну справедливости ради, узкое горлышко при запуске программы, как правило винт. На ssd не пробовал, а на обычном скорость запуска программ возрастала(лет 10 назад).
Но это все лирика, как в Qt уменьшить размер программы? Например если у меня окно с одной кнопкой, может он урежет свои библиотеки для статической сборки?

Цитировать
Твои лабы всё равно импортировали виндовые DDL-ки. То есть разница между "толстым" С++ экзешником собранным в VS на 100 Кб и твоим невелика, просто оверхед языка, и не более того.
Ну без этих dll винда в dos превратиться, а вот dll от VS и NetFramework в чистой винде нет.


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 13, 2017, 08:25
(http://)


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 13, 2017, 08:28
(http://)


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 13, 2017, 08:30
(http://)


Название: Re: Как уменьшить размер проекта.
Отправлено: gil9red от Апрель 13, 2017, 08:31
Hornet, собирайте приложение в релизе, и тогда не нужно будет носить с приложением dll'ки для дебаг сборки (у них постфикс d.dll)


Название: Re: Как уменьшить размер проекта.
Отправлено: Hornet от Апрель 13, 2017, 08:44
Я и собирал в релизе и файлы все были в папке reales


Название: Re: Как уменьшить размер проекта.
Отправлено: deMax от Апрель 13, 2017, 10:23
Я и собирал в релизе и файлы все были в папке reales
Qt5.8 все релизные либы весят 76'471Kb(отладочных на 2,5Gb), мой проект с БД, Net и OpenGl весит 3Мб + 20Мб библиотек.
Так как даже скопировав все релизные либы 230метров никак не получить, можете выложить сюда список библиотек (выделив их все в тотал командере и скопировав имена), и мы подскажем что лишнего вы синкопировали.


Название: Re: Как уменьшить размер проекта.
Отправлено: Apktyc от Апрель 13, 2017, 12:09
Qt5.8 все релизные либы весят 76'471Kb(отладочных на 2,5Gb), мой проект с БД, Net и OpenGl весит 3Мб + 20Мб библиотек.
Так как даже скопировав все релизные либы 230метров никак не получить, можете выложить сюда список библиотек (выделив их все в тотал командере и скопировав имена), и мы подскажем что лишнего вы синкопировали.

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

Hornet, Qt for Windows - Deployment (http://doc.qt.io/qt-5/windows-deployment.html). Натравите утилиту windeployqt на свой исполняемый файл, она Вам соберет необходимый максимум. За исключением вроде бы libgcc_s_dw2-1.dll, libstdc++-6.dll и libwinpthread-1.dll



Название: Re: Как уменьшить размер проекта.
Отправлено: Alex Custov от Апрель 17, 2017, 22:14
У тебя каждого Qt плагина по две копии - debug и release. От platforms оставь только qwindows.dll. От sqldrivers остать только mysql-ный release плагин (без суффикса d в имени).


Название: Re: Как уменьшить размер проекта.
Отправлено: DarkHobbit от Декабрь 20, 2017, 08:57
Народ, вы слона не заметили. У него там мало, что библиотеки с суффиксом d присутствовали, он ещё и объектные файлы (*.o) оставил. Не надо так делать.

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