Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le .exe final plus au moins lourd selon les Compilateurs????

    4 décembre 2005 à 17:04:59

    Bonjour a tous, :)

    J'ai trouver beaucoup de difference au niveau du poid du fichier .exe, a la fin du "build" de certains compilateurs:

    Ex: Pour un meme fichier on a:

    MinGW Studio: ~526 ko
    Dev Cpp: ~420 ko
    Visual cpp: ~572 ko

    Pouvez vous me dire le compilateur qui sort les exe les moins lourd? :p
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      4 décembre 2005 à 17:37:41

      Normal que ça dépende des compilateurs, si ils sont différents ils ne générnt pas le même code exactement.

      En fait ça dépend surtout de l'optimisation : quand tu optimises la vitesse d'exécution souvent ça augmente la taille. Ca dépend donc des paramètres par défaut. GCC et donc Dev-cpp peut optimiser la taille avec l-option -Os ou la itesse avec -O1 -O2 ou -O3. Tu peux rajouter ces options soit directement si tu appelle ton compilateur en ligne de comande, soit les rajouter dans ton IDE dans "options du compilateur" soit en cherchant dans les options pour pas avoir à tapper cette commande.

      ;)
      • Partager sur Facebook
      • Partager sur Twitter
        4 décembre 2005 à 17:47:22

        Ca dépend aussi des libs aujoutés, là je viens de faire un test tout simple sous Dev-C++ :

        #include <windows.h>

        int main(void) {

        system("start notepad");

        }

        // Le .EXE fait seulement 15ko




        // Exactement le même prog avec des libs en plus

        #include <windows.h>
        #include <cstdio>
        #include <cstdlib>
        #include <cstring>
        #include <iostream>

        int main(void) {

        system("start notepad");

        }

        // Le .EXE fait 456ko o_O
        • Partager sur Facebook
        • Partager sur Twitter
          4 décembre 2005 à 18:36:11

          Ca c'est l'effet j'utilise du C++ sans comprendre ce que ça implique. :p
          • Partager sur Facebook
          • Partager sur Twitter
            4 décembre 2005 à 19:08:07

            Et puis entre 420 ko et 572 ko , bah c'est pas la mer à boire. Du moment que ce soit bien codé à l'intérieur...

            Il faut attacher plus d'importance à l'utilisation de la mémoire par le programme que la taille du programme lui-même. Et parfois, le compilateur optimise le temps d'exécution en dépliant des boucles, ce qui revient à augmenter le poids de l'exécutable final.

            Quand la taille de l'exécutable devient un vrai problème (du style un exe de 500 Mo o_O ) il faut modulariser le programme : fichiers de données séparés, plusieurs modules physique à charger (des dll par exemple), etc, etc. Mais normalement on sépare le prog en module bien avant que ces modules n'aient une taille respectable, juste par soucis de réemployabilité et ... modularité!
            • Partager sur Facebook
            • Partager sur Twitter
              4 décembre 2005 à 23:05:23

              Je viens de découvrir que quand on inclu <iostream> le Exe fait 500ko alors que sans ce dernier il fait que 20ko :|
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                5 décembre 2005 à 17:51:13

                Parce que certains include créent des objets ou définissent des variables, puis qu'ils incluent pleins d'autres trucs. Mais bon en réalité on s'en fiche de tout ça, soit on optimise la taille, soit on laisse comme ça (on évite quand même les include inutiles) tant que vous ne faites pas un hello world de plus de 1Mo il n'y a pas vraiment à s'inquiéter du compilateur :D
                • Partager sur Facebook
                • Partager sur Twitter
                  5 décembre 2005 à 18:43:29

                  iostream est une librairie très lourde!! Anisi sur le compilo de DevC9++ il compile tout le fichier iostream dans ton éxecutable! Certain compilateurs ne compilent que les fonctions utilisées. Je crois que c'est possible sous DevC++. Il faut aller dans le menu "outils"->"options du compilateur"!

                  J'ai vu un truc la dessus sur le net! Si je le retrouve je te donne l'url!

                  Voilà, c'est ça Mais ça ne marche effectivement pas trop bien :D pourtant...

                  Si, ça y'est, j'ai compris! Cela dépend quelle librairie est liée à ton projet! Pour windows.h il ne compile pas la librairie car Windows la charge automatiquement à son démarrage!!! Pour iosteam, ça aurait peut-être été moins lourd sur MS-DOS!!

                  Je pense que c'est ça mais je ne suis pas certain :D

                  Bonne prog.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 décembre 2005 à 21:30:34

                    Certains compilateur ( visual c++ par exemple )intègre les infos de débuggage ( en libraire statique ) , donc on se retrouve assez vite avec des exe de 1 à 2 Mo.
                    Mais comme tout ceci est bien fait il y a possibiliter d'optimiser la compilation via les option du projet et donc de diminuer la taille :)
                    Perso je passe de 1,5Mo à 32Ko
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 décembre 2005 à 21:38:31

                      Cherchez pas à comprendre pourquoi iostream prend de la place, vous verrez quand vous apprendrz les templates. (Dans un an ptet avec le cours de m@t et encore...)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Le .exe final plus au moins lourd selon les Compilateurs????

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown