| Optimized Qt? | |
| От: | Аноним 357 | ||
| Дата: | 23.01.09 08: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? | |
| От: | Аноним 174 | ||
| Дата: | 23.01.09 08:44 |
| Здравствуйте, Аноним, Вы писали: А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие... А>В связи с чем хочется попробывать оптимизировать по памяти конечную сборку (заранее точно известно, что библиотеки никем иным более переиспользованы не будут). А>Есть ли тулза, которая: А>1) позволила бы выкинуть из динамической библиотеки функции, которые не используются поставляемым приложением и другими поставляемыми dll-ками. А>2) позволяла сменить модель экспорта функций (экспортировать не по именам, а назначить каждой функции номер и экспортировать его — по моему такой способ называется экспорт по ординалам). А>Еще вопрос: пробывал ли кто-нибудь собирать Qt без rtti и без exceptions — интересует вариант Qt 4.x + MinGW G++ 3.4.x? А>Большой ли выигрыш это дает с точки зрения размера? попробуй собирать qt со статической линковкой. полагаю, что компиллер должен "откидывать" неиспользуемый код qt и тем самым "оптимизировать" размер твоей софтинки. |
| Re[2]: Optimized Qt? | |
| От: | Аноним 357 | ||
| Дата: | 23.01.09 08: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? | |
| От: | Аноним 174 | ||
| Дата: | 23.01.09 09: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? | |
| От: | Аноним 357 | ||
| Дата: | 23.01.09 09:11 |
| Здравствуйте, Аноним, Вы писали: А>... А>можно приобрести коммерческую версию qt Да, возможно придется это сделать. Но хотелось бы рассмотреть эту возможность в последнюю очередь, т.к. просто нецелесообразно делать это в случае решения перечисленных вопросов. |
| Re[3]: Optimized Qt? | |
| От: | Denys V. | ||
| Дата: | 23.01.09 11: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. | ||
| Дата: | 23.01.09 11:09 |
| Здравствуйте, Аноним, Вы писали: А>Здравствуйте, Аноним, Вы писали: А>>... А>>можно приобрести коммерческую версию qt А>Да, возможно придется это сделать. А>Но хотелось бы рассмотреть эту возможность в последнюю очередь, т.к. просто нецелесообразно делать это в случае решения перечисленных вопросов. если уж стоит такой выбор — попробуйте GPL ную собрать статически и посмотреть сколько реально выигрываете... если имеет смысл — покупайте — нет — LGPL и динамическая линковка. С уважением Denys Valchuk IMHO чем больше мнений тем оптимальней выбор варианта... :) |
| Re[4]: Optimized Qt? | |
| От: | Аноним 357 | ||
| Дата: | 23.01.09 12:19 |
| Здравствуйте, Denys V., Вы писали: DV>... DV>и рыбку съесть и ног не замочить? Не понимаю... Вам кажется, что это плохо? |
| Re: результат | |
| От: | Аноним 357 | ||
| Дата: | 27.01.09 07:17 |
| Здравствуйте, Аноним, Вы писали: А>Есть некое приложение для конечного клиента, которое использует динамическую линковку с библиотеками Qt. А>Сами библиотеки не маленькие, а вместе с приложением, прямо скажем, довольно большенькие... Собирал qt 4.4.3 с выключенными rtti, exceptions, accessibility(интересно, кто нибудь использует эту красоту?), qt3support. Резльтат по размеру — hello world статически слинкованный пример с одним виджетом, — 6.02 Мб, зависимость только от системных библиотек windows. Он же запакованный — 2.8 метра. Почему-то не собирались примеры с веб китом... Постоянно показывались ошибки линковки на классы, экспортируемые из QtWebKit, хотя сам libQtWebKit.a собрался. |