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

Langage Delphi Discussion :

Optimisation des applications Delphi


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Optimisation des applications Delphi
    Bonjour,


    je voudrais savoir si il existe des techniques pour optimiser du code
    Delphi, car la plupart des appli que je connais qui tourne sous ce langage
    sont un peu lent, même si certaines son excellente et plus rapide.

    La plupart de celles qui sont lente sont la plupart interfacer avec un sgbd
    de style Interbase, c'est pour ça que je voudrais savoir si il y avait un sgbd
    accessible via delphi et qui soit léger.

    ps: j'aurais pu poser la quéstion dans la partie sgbd et Delphi mais comme
    elle regroupe une question generale ici serait l'idéale.

    Merci

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut Re: Optimisations applications Delphi
    Citation Envoyé par reolik
    car la plupart des appli que je connais qui tourne sous ce langage
    sont un peu lent, même si certaines son excellente et plus rapide.
    Ces applis sont peut être lentes car ce type d'appli est lent en général non ? car justement Delphi est connu pour avoir des performances qui se raprochent du vénérable C++. Ta comparaison est donc un peut vaste
    Question Optimiser je suis curieux de savoir si ça existe ( jusqu'à ici, je m'éttait contenté des optimisations par défaut du compilateur )

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 129
    Points : 95
    Points
    95
    Par défaut
    Perso j'utilise des fois la directive inline qui demande au compilo de remplacer l'appel d'une petite fonction par le code de celle-ci directement. On gagne donc le temps de l'appel. C'est utile pour des petites fonctions utilisees frequemment genre pour des gets, des sets, des calculs de min ou de max. A ne pas utiliser avec des grosses fonction sinon la taille de l'executable va morfler.

    Je m'en servais beaucoup en c++, mais sur Delphi je ne sais pas trop si c'est veritablement efficace et je me demande meme si c'est pas elles qui causent la compilation validee aleatoirement de mon delphi (http://www.developpez.net/forums/viewtopic.php?t=377586)

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Salut,

    Je confirme que Delphi produit du code relativement rapide à partir du moment où on fait attention à ce qu'on écrit comme code.

    Parfois une fonction très largement utilisée peut être très pénalisante et on s'en rend pas compte.

    Pour cela j'utilise des produits de profiling comme ProDelphi par exemple et cela permet d'identifier les goulots d'étranglement. Il vaut mieux chercher à gagner 1s sur une fonction utiliser plus de mille fois dans le programme que 10s sur une fonction appelé 1 seule fois !

    Il faut aussi regardé le code SQL. Est-ce que tes requêtes sont ok ? quelles temps consomment-elles en dehors de delphi (IBConsole par exemple) ? Tu peux aussi chercher à les optimiser car dans ce cas là un index ou une jointure mal faites prennent bcp de temps.

    A+

  5. #5
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Le ralentissement vient certainement de la base de données (ou des accès qui y sont faits) : requêtes mal écrites (select * ...), mauvaise indexation des tables voire mauvaise conception, accès multiples et inutiles à la base, utilisation de TTable plutôt que TQuery...

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Merci de vos réponses, je veux utiliser un sgbd plus leger que Interbase
    si vous avez des noms merci.

    ps:Je comptais utiliser C++/ avec qt pour l'optimiser et côter database
    sqlite, mais si delphi est aussi performant je préfère l'utiliser

  7. #7
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    qu'elle application as tu essayée et que tu trouve lente ?
    Delphi est loin de produire du code lent. Quant à Interbase, elle n'est pas franchement réputée lente.
    Quel type de besoin as-tu côté BDD ? Si c'est juste stocker trois données tu n'as même pas besoin de BDD. Sinon regarde du côté de Firebird (www.ibphoenix.com). Il existe une version 'embendded' qui n'a même pas besoin d'installation (juste une DLL à déployer avec ton appli et ton fichier BDD) et elle offre les même fonctionnalités que la version serveur (transaction, PS, trigger, ...), mais elle ne peut servir que pour une application monoposte. Par contre si un jour ton appli doit tourner en réseau, et bien tu installe un serveur et tu n'as rien à changer, et ce sera franchement mieux que les solutions Access portées en réseau, j'ai vu des applis VB/Access invivables pour l'utitlisateur avec seurlement 11000 enregistrements dans la BDD (pour l'anecdote, quand je leur ais montré la version redeveloppée Delphi/Firebird serveur, les utilisateurs ont cru que la BDD était installée sur leur poste ). Alors Delphi/Firebird lent, cela me fait un peut sourrire. Seulement tu prend n'importe qu'elle BDD avec un minimum d'enregistrement, tu fait une requete de bourrin sans te soucier des index et des jointures, tu auras forcéement des temps de réponses mauvais.

    @++
    Dany

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Tout a fait d'accord, je dois juste faire une caisse enregistreuse numérique.

    avec un stockage quoitidien et une purge à la fin.

  9. #9
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Je confirme aussi, Delphi + Interbase c'est très rapide.

    Ton problème doit surtout venir de la gestion des bases elle-même. Si tu fais n'importe comment, même avec Oracle sur un Méga-serveur tu aura des lenteurs.

    Par exemple récemment je me suis fait avoir par un "select count(*) from UneTable" qui m'a plombé des applications. ( 20 secondes de temps de réponse )
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Tout a fait nono, je vais analyser cette database, cette application doit
    tourner aussi sur de vieilles bécane comme des Pentium2 300Mhz avec
    64 ou 32mb de RAM.

    est ce que Delphi est l'idéale.

    Merci

  11. #11
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Oui. ( surtout si tu demandes l'avis d'un Delphiste )
    Il faut prendre n'importe quel langage réellement compilé.

    De plus le client Interbase est léger même pour des PC assez anciens.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Merci Nono40 Pour ta reponse assez rapide

Discussions similaires

  1. Skins des applications delphi
    Par bysmo dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 17/09/2010, 20h23
  2. Changer l'apparence des applications Delphi
    Par PiPo123 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/09/2008, 18h13
  3. delphi 8 c'est pour des applications win 32 ?
    Par Nadirov dans le forum Delphi
    Réponses: 3
    Dernier message: 29/08/2006, 13h55
  4. Comment afficher des JPEG dans une application Delphi ?
    Par Bouguennec dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2005, 21h18
  5. [Kylix] Fermer des applications
    Par duviau dans le forum EDI
    Réponses: 2
    Dernier message: 27/05/2005, 17h21

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