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

 Delphi Discussion :

[Delphi XE2] Améliorer les performances d'une application


Sujet :

Delphi

  1. #1
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut [Delphi XE2] Améliorer les performances d'une application
    Bonjour,

    Je n'ai rien trouvé dans la FAQ, mais je crois bien me souvenir (ça date de Delphi 4) qu'il y avait un certain nombre de choses à faire pour améliorer les performances des exécutables générés par Delphi (en même temps, ça diminuait la taille des exécutables).

    Avec XE2, la seule chose que je vois c'est le choix entre :
    • Release configuration
    • Debug configuration

    Mais que je choisisse l'un ou l'autre, je ne vois aucune différence. Y-a-t-il des choses à modifier dans la configuration par défaut lors de la création d'un nouveau projet ... ou à faire lors de la génération de la version finale du programme ?
    Pierre GIRARD

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Normalement si tu choisis Release, ton exécutable est plus petit (information de débogage en moins).
    Pour les performances, je ne peux pas te dire.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Normalement si tu choisis Release, ton exécutable est plus petit (information de débogage en moins).
    enfin si tu reconstruis l'application , si tu refais une simple compilation (déjà faite en mode debug) la taille ne changera pas
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Pierre GIRARD Voir le message
    améliorer les performances des exécutables générés par Delphi .... ou à faire lors de la génération de la version finale du programme ?
    Il est préférable de toujours livrer une version Release
    Surtout si tu utilises la directive DEBUG pour gérer un code d'aide au développement en version Debug

    Un exe compilé en Debug lancé en direct ne devrait pas être beaucoup plus lent qu'un exe compilé en Release

    Par contre, un Exe compilé en Debug lancé via Delphi (voir DebugHook) sera nettement plus lent car Delphi doit surveiller ce qui s'y passe (variable locale, thread, exception ...)
    Ce n'est pas l'exe qui est lent mais le débogage qui affiche un tas de chose dans l'IDE (plus tu as de point d'arret, de variable suivie, de variable globale/locale, plus l'affichage des infos est long et donc le temps de débogage aussi)

    tu peux jouer sur "Options Erreurs d'exécution"
    Les options par défaut sont les meilleures en terme de performance
    la plupart du temps, un code bien écrit gère correctement les bornes des tableaux, des types ...
    c'est souvent redondant d'activer ces options de Vérification

    Il faut savoir que Delphi n'est pas très bon avec les nombres flottants !

    Ensuite, c'est la DB qui consomme, idem, selon la bibliothèque utilisée, tu peux avoir des temps excellents à très médiocres !

    Un autre élément qui consomme, c'est l'affichage, mieux vaut réduire les changements de texte, d'effet visuel durant un traitement en boucle
    On a justement évoqué récemment de gérer une progression tous les n cycles ou selon une fréquence précise (inutile de changer un texte plus de 25 fois par seconde, l'œil humain ne le verra pas)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    enfin si tu reconstruis l'application , si tu refais une simple compilation (déjà faite en mode debug) la taille ne changera pas
    Il est justement là, mon problème, même avec une "reconstruction" :
    - Avant : 4661 Ko
    - Après : 4660 Ko

    Selon mes souvenirs, avec Delphi 4, c'était nettement plus spectaculaire.

    D'ailleurs, ça tombe bien que tu interviennes Sergio, j'ai plein de messages d'avertissement concernant ZeosDb lors de la construction, avec "Code 'xxx' non protégé". Ça fait la même chose avec toi ?
    Pierre GIRARD

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Pierre GIRARD Voir le message
    D'ailleurs, ça tombe bien que tu interviennes Sergio, j'ai plein de messages d'avertissement concernant ZeosDb lors de la construction, avec "Code 'xxx' non protégé". Ça fait la même chose avec toi ?
    la même chose , je suis pas sur du message exact mais oui il y a toujours plein de message d'avertissement (faute au 'large public' D7...XE7 en passant par Lazarus). De plus , de quelle version ZEOS parles-tu ? la 7.1 stable ou la 7.2 SVN ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    la même chose , je suis pas sur du message exact mais oui il y a toujours plein de message d'avertissement (faute au 'large public' D7...XE7 en passant par Lazarus). De plus , de quelle version ZEOS parles-tu ? la 7.1 stable ou la 7.2 SVN ?
    La 7.1 stable, que j'ai réussi a installer suite à ton tuto "http://serge-girard.developpez.com/tutoriels/temp/ZeosDBO/"

    (J'avais jamais réussi à l'installer avant ton tuto)

    D'ailleurs, la même application avec les composants IB ne fait que 2922 Ko. Mais comme je commence tout juste à tester les composants ZEOS ... ceci explique peut-être cela ? Pour le moment, je n'en tire aucune conclusion.
    Pierre GIRARD

  8. #8
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Delphi 4 il y a 16 ans, ça ne nous rajeunie pas :p
    Où est passé mon windows 95/98 ??
    Mon pentium II à 233Mhz (environ 500 fois plus lent qu'un Core I7 actuel)
    32Mo de ram (ah ben je ne peux même plus charger mon application Delphi d'aujourd'hui :p )
    IBM sortait un tout nouveau disque dur de capacité effarante de 25 GO ! Tellement énorme qu'à l'époque on se disait qu'une telle capacité était inutile...

    La taille grossissante des exécutables généré par Delphi n+1 ce n'est pas nouveau.

    Ni propre à Delphi.

    Quelques pistes dans ce post :

    http://www.developpez.net/forums/d13...e-executables/

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Pierre GIRARD Voir le message
    La 7.1 stable, que j'ai réussi a installer suite à ton tuto
    (J'avais jamais réussi à l'installer avant ton tuto)
    un bon point pour moi alors
    le week end n'ayant pas été très prolifique , pas de mise à jour de faite pour la semaine

    D'ailleurs, la même application avec les composants IB ne fait que 2922 Ko. Mais comme je commence tout juste à tester les composants ZEOS ... ceci explique peut-être cela ? Pour le moment, je n'en tire aucune conclusion.
    possible , surtout si aucun protocole n'est désactivé (ma petite remarque sur prenez le temps de ....)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Expert éminent

    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2002
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 160
    Points : 6 478
    Points
    6 478
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Barbibulle Voir le message
    Citation Envoyé par SergioMaster Voir le message
    effectivement je pensais aussi a ça , j'ai retrouvé le lien
    T.Wittwer blog
    mais une simple recherche Google avec les mots clés Delphi+RTTI+Disable en liste beaucoup d'autres...
    Merci à tous les deux, ça fait gagner 10% en taille et l'application est un poil plus rapide au lancement (c'est juste le lancement de l'application qui me faisait tiquer. Une fois en cours, c'est très fluide).

    Merci aussi à ShaiLeTroll :
    Il est préférable de toujours livrer une version Release
    ...
    tu peux jouer sur "Options Erreurs d'exécution"
    Les options par défaut sont les meilleures en terme de performance
    Mais comme j'ai tout laissé par défaut, c'est pas ça le problème. Et je parle bien de la version Release, ce qui m'étonnais, c'était le peu de différences avec la version Debug (comparé à l’ancêtre Delphi 4).
    Pierre GIRARD

  11. #11
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 559
    Points : 3 946
    Points
    3 946
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Normalement si tu choisis Release, ton exécutable est plus petit (information de débogage en moins).
    Pour les performances, je ne peux pas te dire.
    Dans Delphi, les infos de débogage sont, si mes souvenirs sont bons, logées dans les DCU (je ne parle pas du code DEBUG), et non pas dans l'exécutable sauf si les infos de débogage TDW 32 sont ajoutées (cela permet à ce débogueur externe de prendre la main sur l'exécutable), je parle ici pour les vieilles versions de Delphi.

    C'est différent avec Lazarus ou les infos de débogage sont dans l'exécutable car le débogueur gdb est toujours externe.

    cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/09/2014, 09h48
  2. Optimisation et amélioration des performances d'une application PHP5
    Par yanis97 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 26/01/2010, 11h06
  3. Améliorer les performances d'une requête avec agrégats
    Par alexis_ dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/11/2009, 22h31
  4. comment augmenter les performances d'une application
    Par jasminblanc dans le forum Firebird
    Réponses: 1
    Dernier message: 17/07/2007, 19h39
  5. Mesurer les performances d'une application Windows
    Par Kr00pS dans le forum Windows
    Réponses: 1
    Dernier message: 12/02/2007, 13h35

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