Salut
-----
Grand merci pour les explications, et désolé d'approfondir autant
Ben c'est le produit des deux, logiquement. Coût total = coût unitaire * quantité
Ce que je voulais dire, c'est que pour une instance d'un objet unique, le gain pourrait être nul, voire négatif, même s'il y a plein d'évènements, parce que pour chacun des événements on gagne une instance de variable mais on perd au niveau de la place du code, et que ce code doit s'y trouver autant de fois que d'événements même si on n'a qu'une seule instance.
dit autrement, si j'ai bien compris tes explications :
Gain en mémoire pour une seule instance = (nombre d'événements) * (mémoire utilisée pour une instance de variable d'événement - mémoire utilisée pour le code économisant l'instance)
Reste à déterminer si ce gain est positif ou négatif, je l'ignore.
Par contre, si on a peu ou un seul évènement, mais beaucoup d'instances de l'objet, le gain serait d'office significatif, car le code n'y est qu'une fois et l'instance de variable un grand nombre de fois.
dit autrement :
Gain en mémoire pour x instances au niveau d'un seul évènement = (nombre d'instances * taille d'une instance de variable d'événement) - mémoire occupée par un code unique.
Et là, plus le nombre d'instances est grand, plus le gain est significatif.
Et évidemment, si on combine beaucoup d'instances avec beaucoup d'événements c'est encore plus significatif (mais donc pas forcément beaucoup d'événements avec peu d'instances).
Ce qui me fait dire que la question à se poser pour utiliser ou non cette méthode serait plutôt au vu de tes explications : "Mon contrôle risque-t-il d'être instancié un grand nombre de fois ou pas dans un thread donné?"
Non?
Sinon :
Mais dans ton cas, qui est celui de tous ceux présents sur ce forum, comme nous ne sommes pas concepteurs de bibliothèques de contrôles généralistes (combo, textbox, ...),
Ben si justement, LOL.
Je suis en train de créer une bibliothèque de contrôles qui ont des spécificités par rapport au genre d'application que je développe (des trackbars qui sont de vrais trackbars, des DateTimePicker avec des fonctionnalités spéciales, des contrôles de saisie numériques et hexadécimaux (pas une bête interception des KeyDown), des IpBoxes efficaces, des contrôles spécifiques d'affichages de grandeurs analogiques, des contrôles de signalisation, etc.
C'est pour ça que je cherche à bien cerner tous les détails et à faire de la programmation propre. Ca va être la base de mon projet suivant (et de la suite), qui tournait avant en VB6 et que je dois intégralement réécrire.
Note que tout ça sera disponible en open-source, et donc je dois quand même veiller à ne pas distribuer n'importe quoi. Ca explique mes questions un peu particulières
Je suis probablement un programmeur un peu "atypique" car mon but est le pilotage de cartes à microcontroleurs personnelles, elles-mêmes programmées en langage d'assemblage.
Claude
Partager