21 votes

Taille minimale exécutable de Qt

Maintenant que Qt passe en LGPL, j'ai tendance à lui donner une nouvelle chance. Il y a quelques années, j'avais décidé de ne pas l'utiliser pour certaines raisons, l'une d'entre elles étant la taille énorme des exécutables (Qt sur Windows). J'ai constaté une limite inférieure d'environ 5 Mo. Trolltech l'a confirmé sur demande mais m'a dit que la granularité serait améliorée, ce qui conduirait à des tailles plus petites (en fonction des éléments requis).

Les choses pourraient avoir changé entre-temps. Quelle est la taille de "hello world" (fenêtre et console) dans Qt de nos jours?

Il s'agit de liens statiques. Je pense que qtCore et qtGui sont requis.

5voto

schnaader Points 26212

Il y a une Discussion de 2007 ici, le plus petit nombre que j'ai vu là-bas après avoir rapidement survolé c'était 1,3 Mo (compressé avec UPX), donc il semble que cela puisse être réduit un peu, mais reste assez grand.

4voto

Daniel Lopez Points 2176

Notre produit Installbuilder for Qt est un outil d'installation multiplateforme qui possède une interface Qt et est utilisé par de nombreux développeurs commerciaux (y compris Trolltech lui-même pour l'emballage de leur IDE QtCreator). En utilisant la version 4.4 et en compilant uniquement les parties dont nous avions besoin, nous avons réduit le surplomb à 4,1 Mo sur Linux x86, 5,2 Mo sur Linux x64 et 5,3 Mo sur Windows. Gardez à l'esprit que ceci est avant de le traiter avec UPX. De plus, si le même binaire doit prendre en charge plusieurs distributions Linux, vous devrez peut-être envisager d'inclure la libstdc++, ce qui ajoutera environ 800 ko à la taille.

Vous devrez créer vos propres versions et essentiellement activer/désactiver ifdef# pour les widgets que vous n'utilisez pas, les formats d'image que vous n'avez pas besoin de prendre en charge, etc. Bien que le code source de Qt soit déjà préparé pour cela et qu'il existe certains outils qui devraient aider, la réalité est que c'est un processus manuel fastidieux (mais nécessaire pour une application comme la nôtre). Leur version intégrée (autrefois connue sous le nom de QTopia) et Qt "classique" ont été fusionnées dans le même code source, donc je suis sûr qu'à l'avenir, il sera de plus en plus facile de construire des versions personnalisées/allégées.

4voto

Henrik Hartz Points 1919

Cela dépend largement de votre configuration et de votre méthode de déploiement. Vous pouvez bien sûr compiler en statique, ce qui exclura le code qui n'est pas utilisé. Vous pouvez également supprimer des éléments tels que les exceptions et la STL, ce qui réduira encore la mémoire et l'empreinte disque. Enfin, que vous utilisiez un système de fichiers compressé comme squashfs, cramf ou jffs2. Essayez

configure --help

pour de nombreuses options. Avec les ports intégrés de Qt pour Linux embarqué et Windows CE, vous pouvez également utiliser qconfig pour charger des fichiers de configuration qui vous permettent de supprimer de nombreux groupes de fonctionnalités. Voir http://doc.trolltech.com/main-snapshot/fine-tuning-features.html pour plus d'informations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X