IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

[Lazarus] Diminuer la taille de l'exe


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut [Lazarus] Diminuer la taille de l'exe
    Bonjour,

    je travaille actuellement sur Simple Web Script et je travaille sous delphi 6 pour le moment et pour chaque version je m'assure qu'elle est compatible avec Lazarus.
    Ce qui m'étonne c'est que le même code source sous delphi prend 250 Ko mais sous lazarus prend 2.6Mo.
    Existe-t-il un moyen de diminuer cette taille ? J'ai bien ajouté l'option -O3 mais sans succès.

    Merci

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Bonjour,

    quelques discussions à ce sujet

    http://www.developpez.net/forums/showthread.php?t=20412

    dans la Faq
    http://www.developpez.net/forums/sho...d.php?t=160547

    bonne continuation
    Un bon exemple vaut mieux qu'une longue explication confuse...

  3. #3
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Voici quelques conseils qui ont été tirés d'un autre forum consacré à Lazarus. Je n'en suis pas l'auteur mais je les ai suivis : cela marche pour Win mais pas testé pour Mac ou Linux (a priori cela devrait aussi fontionner, il n'y a pas de raison).

    Dans le menu "Projet" choisir "options du compilateur"

    Dans l'onglet "Code" choisir sans toucher au reste

    - Table des liens intelligente
    - Code plus petit

    Dans l'onglet "Edition des liens" sans toucher au reste

    - dans le groupe "Déboguage" décocher tout sauf "éliminer les symboles de l'exécutable"
    - dans style de liens cocher "lien intelligent"

    Dans l'onglet "messages" sans toucher au reste

    - décocher "Insérer un logo FPC"

    Compiler avec "Exécuter" "Construire tout"
    Je suis passé de 4.1 Mo à 988 Ko avec cette technique. Mais ça dépend du code aussi.
    Attention c'est pour la génération de l'exécutable final bien sûr puisqu'il n'y a plus aucune info de débogage.
    Après on peut utiliser UPX avec les précautions d'usage.
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par richard Voir le message
    Après on peut utiliser UPX avec les précautions d'usage.
    Bonjour,

    Pourrais-tu préciser les précautions d'usage?

    Une chose est sûre (je l'ai appris à mes dépends après avoir distribué un prog) un programme compressé avec UPX ne fonctionnera pas sous Ubuntu 7.10, il faut le savoir!

  5. #5
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Voici un endroit dans lequel on peut trouver ce genre d'informations :


    http://wiki.lazarus.freepascal.org/Size_Matters/fr#Contests


    Pour faire simple :

    The disadvantages are:

    1. worse compression (and also the decompression engine must be factored into _EACH_ binary)
    2. decompression must occur each time.
    3. Since windows XP+ now features a built-in decompressor for ZIP, the the whole point of SFX goes away a bit.
    4. Binary that are internally compressed can't be memorymapped by windows, and must be loaded in its entirity. This means that the entire binary size is loaded into VM space (memory+swap), including resources.
    En fait UPX a l'inconvénient de ses qualités : il se décompresse en mémoire vive, quand un programme fait 20 Mo et qu'avec UPX tu le réduis à 3 Mo voire moins, il y a bien un moment où il faut payer l'addition.

    En fait avec UPX, on programe à crédit : la vraie taille mémoire on ne la connaît qu'à l'exécution, et contrairement aux langages dits "managés" , rien dans le programme ne permet vraiment de se prémunir contre d'éventuelles zones écrasés. Il faut faire confiance grosso modo au système d'exploitation (on sait par ailleurs que windows est extrèmement performant dans ce domaine : )

    Je ne renie pas UPX, il faut simplement prendre "des précautions d'usage".
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Points : 43
    Points
    43
    Par défaut
    Merci de ces précisions, mais ce n'est pas windows qui avait un problème avec le programme compressé (il y avait une version windows et une version linux du programme), mais c'est la version linux avec Ubuntu 7.10 (la dernière version) .

  7. #7
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Je ne connais pas suffisamment Ubuntu mais je sais que certains systèmes (Ubuntu serait-il dans ce cas ?) finissent par interdire les décompressions en mémoire vive pour éviter tout problème.

    Solution un poil radicale, certes, mais finalement efficace, isn't it ?
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Points : 43
    Points
    43
    Par défaut
    Efficace, oui, à condition de prévenir les gens... Car évidemment les utilisateurs du programme que j'avais distribué m'ont signalé un bug de mon programme, mais comme il fonctionnait correctement sous mandriva et Ubuntu 7.04, on a cherché un bon moment avant de penser à UPX, que de temps perdu...

  9. #9
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    Pour prévenir il faudrait qu'il y ait une vraie documentation ... mais la documentation c'est "la relance du pouvoir d'achat" de l'informatique.

    Tout le monde en parle, personne ne l'a vu !

    Pour lazarus, par exemple, j'ai cherché en vain une documentation qui permettrait d'avoir pour les composants visuels (au moins) une doc donnant les comportements de ces composants (comme dans la bibliothèque TKinter pour Python par exemple) : que dalle ! Faut deviner, extrapoler, bref faire de la programmation au pendule...
    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

  10. #10
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Citation Envoyé par richard Voir le message
    Voici quelques conseils qui ont été tirés d'un autre forum consacré à Lazarus. Je n'en suis pas l'auteur mais je les ai suivis : cela marche pour Win mais pas testé pour Mac ou Linux (a priori cela devrait aussi fontionner, il n'y a pas de raison).



    Je suis passé de 4.1 Mo à 988 Ko avec cette technique. Mais ça dépend du code aussi.
    Attention c'est pour la génération de l'exécutable final bien sûr puisqu'il n'y a plus aucune info de débogage.
    Après on peut utiliser UPX avec les précautions d'usage.
    Merci ça marche impécable ! Je suis passé en 300Ko

  11. #11
    Membre éclairé
    Avatar de richard
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2002
    Messages : 474
    Points : 772
    Points
    772
    Par défaut
    50 ko de différence avec Delphi donc (dont la réputation n'est plus à faire). Cela montre à l'évidence (s'il en était besoin) que FreePascal est un excellent outil open source !

    "Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth
    https://pharo.org/web
    https://faust.grame.fr/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] Diminuer la taille des exécutables
    Par Clandestino dans le forum Lazarus
    Réponses: 7
    Dernier message: 16/07/2009, 15h29
  2. diminuer la taille de la base de données
    Par pschmidtke dans le forum Access
    Réponses: 14
    Dernier message: 14/06/2006, 22h04
  3. Je n'arrive pas à diminuer la taille d'une div lorsque j'en insère une autre.
    Par psychoBob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 27/05/2006, 21h04
  4. Diminuer la taille d'une base
    Par calypso dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/04/2006, 21h50
  5. wxWindows et DevC++ : taille de l'exe énorme !
    Par ovh dans le forum Dev-C++
    Réponses: 7
    Dernier message: 19/11/2003, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo