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 :

Impact du nombre de procédures et fonctions sur l'optimisation


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Points : 41
    Points
    41
    Par défaut Impact du nombre de procédures et fonctions sur l'optimisation
    Bonjour

    Simple question :
    Si on a une fiche avec 3 bouttons chacun exécutant une action différente dans le onclick , donc on à dans notre unité 3 procédures onclick déclarées !!!

    Le même cas avec une seule procédure Onclick avec un switch (case TButton(Sender).TAG Of) et chaque evenement onclick des bouttons pointe vers cette même procédure avevc leurs TAG différents !!§

    Est ce que ceci a un impact sur la vitesse d'exécution du programme, estce que si on regroupe plusieurs actions dans une meme procédure, chacune indexant vers le composant correspondant, ceci nous fait il gagner plus de ressources ou de vitesse ou est ce que c'est la meme chose ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 396
    Points : 640
    Points
    640
    Par défaut
    Franchement l'optimisation à ce niveau c'est rien du tout, là tu es plus dans une option d'améliorer la maintenance et la lisibilité de ton code.

    Gagner 50 octets en taille ou 0.00001 seconde lors de l'appui sur un bouton c'est quand ton programme tourne sans bug et que tu as du temps à perdre qu'a la limite tu peux te poser la question

  3. #3
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Et puis même, c'est pénalisant. Puisqu'avec une seule méthode, tu as plusieurs tests à faire !

    Il faut retenir une chose : l'optimisation c'est mal. La maintenance et la lisibilité, c'est le bien. Là tu veux fuire le bien pour courir vers le mal.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Aos
    Aos est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 187
    Points
    187
    Par défaut
    La plus grosse optimisation se fait au niveau des conditions, des calculs ect...
    Ensuite, voir si c'est des calcul de bas niveau ou non, est ce que ce sont des instructions direct du processeur...

    Le nombre de procédure/fonction importe peu.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Points : 41
    Points
    41
    Par défaut
    MErci pour l'info
    sincèrement je m'en doutais que a ce niveau la ca n'a pas grande chose a faire
    Mais je voulais etre sur !!!
    Question compilation j'ai pas la notions des tarifs !!!

  6. #6
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    Citation Envoyé par sjrd Voir le message
    Il faut retenir une chose : l'optimisation c'est mal. La maintenance et la lisibilité, c'est le bien. Là tu veux fuire le bien pour courir vers le mal.
    Euh... faut pas exagérer quand même. Ca dépend de tes objectifs et de ton context d'utilisation.
    Il ne faut pas oublier que le développement ce n'est pas une fin en soit. Il ne faut pas non plus chercher à tout prix à se faciliter la vie et la maintenabilité du code, si ça doit se faire au détriment du service rendu.

    Si tu dois installer 10 serveurs en load balancing pour réaliser un traitement que le développeur n'a pas voulu optimiser pour privilégier la "maintenance et la lisibilité" (et encore, les deux ne sont pas si incompatibles que ça), tu multiplies par 10 tes couts de production, que tu devras donc payer tous les mois. C'est bien pire que de multiplier par 10 le cout de la maintenance de ton appli, le jour ou peut-être tu voudras faire une évolution...

    Il faut toujours trouver le bon équilibre entre optimisation et maintenabilité. Il n'y a pas de "bien" ou de "mal" tout est une question d'objectifs.

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 548
    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 548
    Points : 25 118
    Points
    25 118
    Par défaut
    Il est évident, que la centralisation implique un routage des actions, donc un calcul qui prend du temps mais bien moins que le temps que l'écran se rafraichissent (ton oeil ne va même pas assez vite), ... car l'affichage c'est finalement assez lent ...

    Parfois, il devient difficile d'avoir un controle absolu et une vision globale des actions les unes par rapport aux autres ... voir la TActionList pour organiser ses traitements ...

    Vouloir centraliser les traitements en un seul point, c'est un début de conception à la MVC (Modèle-Vue-Contrôleur)

    J'ai aussi tenté de faire ce genre de chose, d'avoir un point tout est centralisé (un Event et un GROS case), au final c'est parfois pire qu'avoir 50 gestionnaire différents (problème de lisibilité relevé par les autres membres du forum), et parfois c'est pas mal du tout, tout dépend en fait de l'ergonomie que l'on souhaite pour son applicatif ... par exemple, si tu as une application guidée pas à pas, genre Installeur, ou une application libre ou l'on peut cliquer partout comme on veut genre Explorateur Window, la façon de gérer les évènements n'est pas du tout la même ...

    Est-ce que quelqu'un aurait un tutorial avance sur le MVC en Delphi, car personnellement, je n'ai jamais vraiement réussi à détacher vraiement la Vue des Données sans perdre tout le confort de Delphi, ...
    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

  8. #8
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    a mon avis le seul moyen pour ne pas perdre le coté RAD de delphi avec un modèle MVP (ou MVC) c'est soit de développer des composants ou wrapper de composant prenant en charge le modèle ou alors un adaptateur model <-> DataSet.
    Akim Merabet

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 548
    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 548
    Points : 25 118
    Points
    25 118
    Par défaut
    Effectivement Kafeïne, la meilleure réussite de "MVC" que j'ai faite c'est un Mappeur qui lie des objets avec des Edits à la façon d'un DataSet, ... se résumant à un Load et un Save
    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

Discussions similaires

  1. Fonction sur nombre de cellules non vides
    Par hanane78 dans le forum Excel
    Réponses: 3
    Dernier message: 28/10/2010, 13h02
  2. Exercices sur procédures et fonctions
    Par much1707 dans le forum Langage
    Réponses: 1
    Dernier message: 26/04/2009, 22h29
  3. Réponses: 1
    Dernier message: 04/02/2008, 21h35
  4. Réponses: 2
    Dernier message: 13/11/2007, 10h32
  5. [Oracle] Fonction sur nombre
    Par dinver78 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/07/2007, 11h38

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