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

C# Discussion :

Question sur la performance des événements


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut Question sur la performance des événements
    Bonjour,

    J'ai une application qui permet de faire de la communication avec un automate. Sur ce dernier, il est possible de mettre des variables en surveillance. Lorsque la valeur de cette variable change, le driver automate me lance un événement.

    L'implémentation de toute la colonne "Communication automate" compte 6 couches. Lorsque je reçois un événement de l'automate, celui-ci est intercepté par la couche tout en bas. Pour notifier le Main de cet événement, je remonte chacune de mes couches par événement.

    En résumé, lors d'une notification d'un automate, j'ai 5 événements générés dans mon application pour que le main sache quelle opération faire.

    Cela me met la puce à l'oreille, et je me pose la question si, au niveau performance, cela ne sera pas trop gourmand. Qu'en pensez-vous?

    Merci de votre avis !

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Bonjour.

    Vous utilisez le mécanisme des evenements dotnet ? Si c'est le cas pas besoin de faire 5 evenements il suffit d'exposer l'évènement aux couches inférieures

  3. #3
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Oui j'utilise les événements dotNet. Le problème est que chaque couche ajoute son petit grain de sel (interpretation du protocole, ajout de valeurs mise en cache, ...). Donc l'événement de la couche inférieur n'aura aucun sens pour la couche supérieure.

    Je profite également pour poser la question si la communication inter-couches se fait également comme cela dans d'autres projet? Pour ma part, c'est mon premier projet où j'ai besoin de communication dans les deux sens entre mes couches. D'habitude, je travaillais avec de simples appels de méthodes de haut en bas, mais pour ce qui est de la notification de bas en haut, c'est la seule solution que je vois...

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par stephane.julien Voir le message
    Oui j'utilise les événements dotNet. Le problème est que chaque couche ajoute son petit grain de sel (interpretation du protocole, ajout de valeurs mise en cache, ...). Donc l'événement de la couche inférieur n'aura aucun sens pour la couche supérieure.
    ok alors effectivement il faut générer autant d'évènements que de couche. Les évènements ne sont pas de gros consommateurs de mémoire mais par contre implique (à vérifier quand même j'ai doute ) un passage en mode noyau, ce qui as des conséquences néfaste.

    Citation Envoyé par stephane.julien Voir le message
    Je profite également pour poser la question si la communication inter-couches se fait également comme cela dans d'autres projet? Pour ma part, c'est mon premier projet où j'ai besoin de communication dans les deux sens entre mes couches. D'habitude, je travaillais avec de simples appels de méthodes de haut en bas, mais pour ce qui est de la notification de bas en haut, c'est la seule solution que je vois...
    Vous pouvez également utiliser des objet cyclique mais avec prudence . Il me semble qu'il y a un patten la dessus mais j'arrive pas à remettre un nom :-(

  5. #5
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Citation Envoyé par dev01 Voir le message
    implique (à vérifier quand même j'ai doute ) un passage en mode noyau, ce qui as des conséquences néfaste.
    Qu'entendez-vous par le mode noyau? Et quelles sont les conséquences néfastes auxquelles vous faites allusion?

    Mon application n'a pas encore de forme de déploiement, mais je pense à un service Windows ou une application console. Certaines couches sont rassemblées dans des assemblys différents, cela pour la réutilisabilité dans d'autres projets. Je ne sais pas si ça a un lien avec le mode noyau?

    Citation Envoyé par dev01 Voir le message
    Vous pouvez également utiliser des objet cyclique mais avec prudence . Il me semble qu'il y a un patten la dessus mais j'arrive pas à remettre un nom :-(
    Je ne connais pas ces objets cycliques. Si quelqu'un a de la doc là dessus, je suis intéressé! Ou une très brève description...

    Merci pour les réponses!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2007
    Messages : 180
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Les évènements ne sont pas de gros consommateurs de mémoire mais par contre implique (à vérifier quand même j'ai doute ) un passage en mode noyau, ce qui as des conséquences néfaste.
    Des conséquences néfastes? Tu pourrais expliquer.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Un passage en mode noyau ? ça m'étonnerait beaucoup, aprés tout un évenement .net c'est un simple appel de fonction .net. En terme de performance ben ça a un impact oui, tu fais 5 appels de fonction, mais je vois pas quoi améliorer si tu as une architecture en couche et que chaque couche doit enrichir l'évènement. Reste plus qu'à faire des tests pour voir si les perfs sont rédibitoires.

Discussions similaires

  1. Question sur la gestion des fenetres MDI
    Par RémiONERA dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/07/2005, 07h58
  2. question sur le rafraichissement des données dans la base
    Par vbcasimir dans le forum Bases de données
    Réponses: 8
    Dernier message: 06/06/2005, 12h44
  3. question sur le comportement des threads
    Par rose-bonbon dans le forum CORBA
    Réponses: 4
    Dernier message: 27/10/2004, 18h00
  4. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  5. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 12h08

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