Existe-t-il une taille idéale pour les modules exécutables sous Windows?

J’ai pris note de la taille du fichier .exe de nombreuses applications.

J’ai vu que Visual Studio 2005 a une taille .exe de 453 Ko et VS2008 de 1,04 Mo car ils divisent l’application en plusieurs parties (.exe + de nombreux fichiers .dll).

J’ai également vu que MS Outlook avait un très gros fichier .exe (11,8 Mo) alors que MS Word était très petit (398 Ko)!

Après avoir réfléchi aux choses que j’avais vues, je me suis retrouvé avec ces questions:

  1. Y a-t-il un avantage à avoir un petit .exe, même si la taille finale de l’application (toutes les DLL chargées) est beaucoup plus grande?
  2. Et si oui, à quelle taille est-il bon de commencer à séparer une application en modules distincts?

Un grand exécutable a probablement moins de bibliothèques partagées (moins de code réutilisable), ce qui signifie que l’application consum probablement plus de mémoire qu’une application utilisant des bibliothèques partagées. Si vous voulez un système avec une empreinte mémoire minimale, vous voulez des bibliothèques partagées.

Un grand exe est susceptible d’être plus autonome, ce qui peut faciliter le maintien d’un déploiement stable.

En règle générale, exe grande taille peut signifier que vous collectez toutes les dépendances dans un seul fichier, donc pas de problème de dépendance comme dll hell mais chaque fois que vous voulez réparer quelque chose dans un petit module, l’utilisateur doit télécharger ce grand exe !!!

D’un autre côté, cela peut signifier que vous modulalisez votre application en différents modules, de sorte qu’il est facile de maintenir et de mettre à niveau ces modules séparément et que l’utilisateur n’a pas à télécharger le gros exe.

Ces articles:

Un examen approfondi du format de fichier exécutable portable Win32

Partie 1 , partie 2

Semble être un très bon résumé du format de fichier utilisé par les exécutables Windows (et les DLL).

Autant que j’ai pu voir, l’auteur ne mentionne nulle part quoi que ce soit sur le fait qu’une certaine taille pour un exécutable est meilleure qu’une taille plus petite / plus grande.

Cela pourrait donc signifier que la taille d’un exécutable n’a pas vraiment d’importance pour Windows.

D’autre part, je pense que lorsque vous ouvrez un exécutable dans Windows, le fichier sera analysé par les scanners de virus (le cas échéant) avant de transférer le fichier au système d’exploitation pour exécution. Cela pourrait donc signifier qu’un exécutable plus grand signifie un temps de démarrage plus long en présence d’une application de numérisation.