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

EDI Delphi Discussion :

[Benchmarks] Performances de Delphi


Sujet :

EDI Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Points : 155
    Points
    155
    Par défaut [Benchmarks] Performances de Delphi
    Salut !

    J'aimerais connaître un peu les performances de Delphi, et spécialement en Win32 en fait.
    En effet, je dois faire une application à base d'IA, et la performance est primordiale. Cependant j'aimerais trouver le bon compromis entre performances et rapidité de développement, et Delphi me semblait être la bonne solution.

    J'aimerais savoir s'il existe des benchmarks par rapport à d'autres langage, d'autre IDE, ou si certains d'entre vous savent concrètement si ce choix est réellement bon.

    J'ai un peu banni tous les langages à base de machine virtuelle type Java / .NET, peut être me trompe je ... Et du C / C++ système c'est vraiment trop bas niveau, et je vais perdre des jours et des jours sur des trucs rapides avec une bonne IDE.

    Merci

  2. #2
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    C'est un peu vague comme attentes.

    Pour une IHM, les performances n'ont pas le même ordre de grandeur que pour un logiciel embarqué par exemple.

    Il existe avec Deplhi des tas de techniques avancées permettant d'atteindre de performances correctes.

    Le mieux, mais je suis un programmeur avec pas mal de bagages, est d'utiliser plusieurs langages:

    Delphi pour l'IHM proprement dite.
    C++ pour le bas niveau nécessitant des timings "durcis" (nanosecondes).

    Note que tu peux aussi obtenir des timings durcis avec Delphi quand tu connais bien.

  3. #3
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Delphi est reconnu pour générer du code bien optimisé, surtout en vitesse d'execution.

    Donc je pense que tu prends le bon langages, pour le compromis et sa facilité d'approche, et pour le code généré de bonne qualité.

    Comme le disait caine, dans des portions critiques, tu peux jouer avec les langages, et par exemple intégrer des portions d'assembleur dans delphi...

    Moi ca fait longtemps que j'en ai pas fait, donc je te dirais pas exactement comment, tant ca a évolué...

    bon code !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par Caine
    Delphi pour l'IHM proprement dite.
    C++ pour le bas niveau nécessitant des timings "durcis" (nanosecondes).
    J'ai pas mal de bagages aussi et j'y ai pensé aussi. C'est ce qui me paraissait être le mieux.
    Mais est ce que ca vaut vraiment la peine ?
    Associer 2 langages, c'est leur trouver une interface commune, etudier les compatibilité, respecter des standard ...
    Et je me disais que si c'est pas pour quelque chose de vraiment significatif sur pc de bureaux, ca ne vaut pas le temps que je risque de perdre à mettre en place une telle architecture ...

  5. #5
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Toute la question est là.
    Il est parfois utile d'attaquer certains traitement dans des langages spécifiques.

    Par exemple, Perl est un excellent parser de page HTML, si tu dois parser une page en très peu de temps, il vaut mieux déléguer ça à Perl plutôt que de réinventer ton parser.

    Un autre exemple: la communication avec un automate embarqué sur une liaison série, temps de réponse < 1 ms.
    L'émission et la réception des octets peuvent se gérer uniquement en Delphi. Mais pas en descendant de TObject car le temps est trop contraignant.
    Soit tu codes en Pascal Object (du Delphi, je sais) ou tu attaque une Dll en C.

    L’assembleur embarqué est un exemple bien connu.

    Ca dépend uniquement des temps que tu attends, et de ce que tu veux réutiliser.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Points : 155
    Points
    155
    Par défaut
    Oky

    Par contre pour l'histoire des DLL, j'ai deja eu des soucis (cf post "c'est quoi les libraires")

    j'avais codé un proj de réseau de neurones en c++ et j'avais un certain nombres de fonctions d'apprentissage, de résolution ...
    j'en ai fait une DLL, pour faire une application graphique en delphi.
    Impossible d'utiliser cette DLL. Il doit y avoir des règles très strictes à suivre ? Surtout au niveau des types il semblerait ... C'est la dessus qu'il me bachait assez souvent ...

    Pour ma ptite question, apparement, je vais me lancer dans du Delphi pur pour l'instant. Je n'ai pas de contraintes "sine qua none" mais si mon appli donne des résultats moins performants que les existants, elle n'est pas intéressante. Dans ce cas là, je tenterais la combinaison C++ système / IHM Delphi

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 41
    Points : 485
    Points
    485
    Par défaut
    Delphi donne de tres bon resultat du moment qu'on sache l'utilise
    De plus, comme bon nombre de langage actuels, il supporte l'assembleur inline, donc tu peux optimise tes parties a ton aise.
    M'etant deja lance dans des projets d'optimisations de certaines fonctions, je peux te dire que la tache n'est pas tres complexe du moment que tu sais programmer un minimum.

    Par contre, il faut savoir que les majorite des fonctions de la VCL/RTL ne sont pas tres optimisees et il est assez facile de faire mieux en pascal et surtout en assembleur (un groupe nomme FastProject a refait plusieurs de ces fonctions et meme un gestionnaire de memoire inclut dans D2006 qui sont beaucoup plus rapides). Donc evite d'utiliser la VCL où le temps sera critique.

    je suppose que ca doit etre la meme chose dans les lib C/C++ mais je peux pas affirmer car je ne me suis jamais plonge dedans.

Discussions similaires

  1. Problème performance SQL Server Delphi
    Par burkan dans le forum Bases de données
    Réponses: 15
    Dernier message: 20/08/2010, 01h41
  2. benchmarking pour comparer performance SGBD
    Par fgalves dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 23/06/2010, 18h11
  3. Turbo delphi, performant ou bridé ?
    Par expertsadomicile dans le forum EDI
    Réponses: 3
    Dernier message: 03/02/2008, 22h37
  4. Réponses: 3
    Dernier message: 30/01/2006, 10h52

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