Russian Qt Forum

Qt => Вопросы новичков => Тема начата: alexandros от Июль 09, 2013, 22:14



Название: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: alexandros от Июль 09, 2013, 22:14
Собрал проект в релиз, положил необходимые библиотечки, все вместе стало весить 30Мб. Сжал UPX'ом библиотеки стало 10мб, но при этом приложение стало пожирать 32Мб(!!!) оперативки, до сжатия потребляло ок 4.5Мб. Нормально ли это?


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Old от Июль 09, 2013, 22:16
Вы расход памяти в системном мониторе смотрите?


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: alexandros от Июль 09, 2013, 22:17
в диспетчере задач Win


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Old от Июль 09, 2013, 22:20
в диспетчере задач Win
Приложение алоцирует память у ОС для распаковки библиотек, но память системе сразу не возвращается, в дальнейшем эта память будет доступна приложению. Переживать не стоит.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: alexandros от Июль 09, 2013, 22:38
Приложение алоцирует память у ОС для распаковки библиотек, но память системе сразу не возвращается, в дальнейшем эта память будет доступна приложению. Переживать не стоит.

Да, видимо так оно и есть, в течении 5 минут использование памяти резко падает до 900кб. Спасибо ценная информация!


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Alex Custov от Июль 09, 2013, 22:53
при сжатии всех библиотек UPX-ом значительно падает скорость запуска приложения, если это важно.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: alexandros от Июль 09, 2013, 22:57
при сжатии всех библиотек UPX-ом значительно падает скорость запуска приложения, если это важно.

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


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: lit-uriy от Июль 10, 2013, 10:21
ну и не забывай, после распаковки файлов во временный каталог "Текущий каталог" будет именно временным.
Т.е. если ты, например, возьмёшься использовать QSettings и будешь читать файл настроек из текущего каталога бинаря, а файл настроек не упакован вместе с ним, то файл настроек будет искаться во временном каталоге, а вовсе не рядом с упакованным бинарём.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: fuCtor от Июль 14, 2013, 12:44
А смысл вообще упаковывать UPX-ом? Если можно сделать простейший инсталляк для распространения, который аналогично ужмет все.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Bepec от Июль 14, 2013, 12:54
Не аналогично - раз.
Во вторых уже сжатое UPX можно сжать уже инсталлятором :D


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: lit-uriy от Июль 14, 2013, 13:11
>>Не аналогично - раз.
UPX вроде lzma-сжатие использует, как и многие современные установщики.

другое дело над upx-ом думать не надо, он очень прост в использовании.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: thechicho от Июль 14, 2013, 13:24
а чо проблема 30мб скачать сейчас? нафига ужимать.
если нету/жалко денег на трафик, можно залить на гугл-диск какой-нибудь.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Alex Custov от Июль 14, 2013, 14:31
А смысл вообще упаковывать UPX-ом? Если можно сделать простейший инсталляк для распространения, который аналогично ужмет все.

инсталлятор ужмёт setup.exe, а не установленные DLL. UPX сжимает сами DLL.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Bepec от Июль 14, 2013, 16:51
lit-uriy, как правильно заметил Alex Custov - это разные сущности.

Размер установщика и размер dll.

Сжатие используют мб и одинаковое (не знаю, каюсь), но результат иной.

1) Для переносимого приложения нужен малый вес всех файлов.

2) Для стационарного нужен малый вес установщика.

1 не аналогично 2.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: fuCtor от Июль 15, 2013, 16:23
То что не аналогично это да.

1) Для переносимого приложения нужен малый вес всех файлов.
2) Для стационарного нужен малый вес установщика.

Тогда уж лучше статическая линковка + ресурсы максимально внутрь. Тогда можно и UPX пройтись.

Я думал прошло время когда 10-20мб являются таким большим объемом для переноса. На днях смотрел флешки, меньше 8Гб не увидел в продаже.
Я б как раз сжимал пакет целиком, для оптимизации его передачи по сети. При этом несжатое приложение все же быстрее запускается.




Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: Bepec от Июль 15, 2013, 17:48
Статическая линковка = открытие исходников или наличие лицензии + дополнительные соглашения :/

Обновлять проще отдельные части, чем тянуть опять-таки весь файл. :P Ну да это извечный спор.


Название: Re: Cжатие динамических библиотек Qt 5 UPX'ом
Отправлено: alexandros от Июль 15, 2013, 20:56
со статикой дополнительные заморочки, с dll проще,