Quelques données brutes post-compilation d’un code source simple :
#include <stdio.h> int main(int argc, char **argv) { printf("Hello Kiwi\n"); return 0; }
Rien de particulier, ce code devrait juste donner un exécutable des plus léger.
Compilation dynamique
Plateforme | Taille | Dépendances |
---|---|---|
VC9 (Visual Studio 2008) | 7 168 | msvcr90.dll kernel32.dll |
VC10 – (Visual Studio 2010) | 6 144 | msvcr100.dll kernel32.dll |
VC11 – (Visual Studio 2012) | 7 168 | msvcr110.dll kernel32.dll |
- Avantage : code très léger
- Inconvénient : nécessite la présence de runtimes spécifiques sur les environnements ciblés
Compilation statique
Plateforme | Taille | Dépendances |
---|---|---|
VC9 – (Visual Studio 2008) | 53 248 | kernel32.dll |
VC10 – (Visual Studio 2010) | 46 080 | kernel32.dll |
VC11 – (Visual Studio 2012) | 62 976 | kernel32.dll |
- Avantage : plus de dépendances aux runtimes !
- Inconvénient : taille conséquente ! le contenu des librairies est incorporé au binaire
Compromis
Plateforme | Taille | Dépendances |
---|---|---|
WDK 7600.16385.1 | 6 144 | msvcrt.dll kernel32.dll |
- Avantage : code très léger ! (utilise les runtimes du système, plus de dépendances externes)
- Inconvénient : certaines fonctionnalités récentes ne sont pas disponibles dans ce runtime