Optimized Qt?
От: Аноним  
Дата: 23.01.09 09:38
Оценка:
Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.
Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...

В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут).
Есть ли тулза, которая:
1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками.
2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).

Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x?
Большой ли выигрыш это дает с точки зрения размера?

21.01.10 12:44: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: Optimized Qt?
От: Аноним  
Дата: 23.01.09 09:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.

А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...

А>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут).

А>Есть ли тулза, которая:
А>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками.
А>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).

А>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x?

А>Большой ли выигрыш это дает с точки зрения размера?

попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.
Re[2]: Optimized Qt?
От: Аноним  
Дата: 23.01.09 09:55
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.

А>>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...

А>>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут).

А>>Есть ли тулза, которая:
А>>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками.
А>>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).

А>>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x?

А>>Большой ли выигрыш это дает с точки зрения размера?

А>попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.


к сожалению, именно это как раз не подходит (планируется, что софтинка closed source, а Qt — LGPL).
Re[3]: Optimized Qt?
От: Аноним  
Дата: 23.01.09 10:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Аноним, Вы писали:


А>>>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.

А>>>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...

А>>>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут).

А>>>Есть ли тулза, которая:
А>>>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками.
А>>>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).

А>>>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x?

А>>>Большой ли выигрыш это дает с точки зрения размера?

А>>попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.


А>к сожалению, именно это как раз не подходит (планируется, что софтинка closed source, а Qt — LGPL).


можно приобрести коммерческую версию qt
Re[4]: Optimized Qt?
От: Аноним  
Дата: 23.01.09 10:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>...


А>можно приобрести коммерческую версию qt


Да, возможно придется это сделать.
Но хотелось бы рассмотреть эту возможность в последнюю очередь, т.к. просто нецелесообразно делать это в случае решения перечисленных вопросов.
Re[3]: Optimized Qt?
От: Denys V. Украина http://ua.linkedin.com/in/dvalchuk
Дата: 23.01.09 12:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Аноним, Вы писали:


А>>>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.

А>>>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...

А>>>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут).

А>>>Есть ли тулза, которая:
А>>>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками.
А>>>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам).

А>>>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x?

А>>>Большой ли выигрыш это дает с точки зрения размера?

А>>попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки.


А>к сожалению, именно это как раз не подходит (планируется, что софтинка closed source, а Qt — LGPL).


и рыбку съесть и ног не замочить?
С уважением Denys Valchuk

IMHO чем больше мнений тем оптимальней выбор варианта... :)
Re[5]: Optimized Qt?
От: Denys V. Украина http://ua.linkedin.com/in/dvalchuk
Дата: 23.01.09 12:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:


А>>...


А>>можно приобрести коммерческую версию qt


А>Да, возможно придется это сделать.

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

если уж стоит такой выбор — попробуйте GPL ную собрать статически и посмотреть сколько реально выигрываете... если имеет смысл — покупайте — нет — LGPL и динамическая линковка.
С уважением Denys Valchuk

IMHO чем больше мнений тем оптимальней выбор варианта... :)
Re[4]: Optimized Qt?
От: Аноним  
Дата: 23.01.09 13:19
Оценка:
Здравствуйте, Denys V., Вы писали:

DV>...

DV>и рыбку съесть и ног не замочить?

Не понимаю... Вам кажется, что это плохо?
Re: результат
От: Аноним  
Дата: 27.01.09 08:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt.

А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие...

Собирал qt 4.4.3 с выключенными rtti, exceptions, accessibility(интересно, кто нибудь использует эту красоту?), qt3support.

Резльтат по размеру —
hello world статически слинкованный пример с одним виджетом, — 6.02 Мб, зависимость только от системных библиотек windows.
Он же запакованный — 2.8 метра.

Почему-то не собирались примеры с веб китом... Постоянно показывались ошибки линковки на классы, экспортируемые из QtWebKit, хотя сам libQtWebKit.a собрался.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.