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

Windows Presentation Foundation Discussion :

Problème de performance WPF


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 97
    Par défaut Problème de performance WPF
    Bonjour à tous,

    Ma configuration est la suivante : j'utilise Visual Studio 2008, le Framework .NET 3.5 et WPF.

    J'ai de gros soucis de performance au niveau de mon client. J'ai, par exemple, des lenteurs lorsque j'utilise les ascenseurs de mon application.

    J'ai utilisé le profiler EQATEC mais je n'arrive pas à diagnostiquer précisément d'où vient le problème.

    Avez-vous une méthode ou un outil à me conseiller pour arriver à déterminer d'où viennent les lenteurs?

    Merci, Cécile.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Tes ascenseurs sont associés à quel type de contrôle (ListBox, ListView, etc.).

    Utilises-tu la virtualization de ces contrôle ? Cela permet de créer dynamiquement et à la volée que les contrôles graphiques nécessaires (visibles à l'écran...) et de créer les autres lorsque tu scrolles.

    As-tu regarder du côté de l'outils WPF performance disponible ici ?

  3. #3
    Membre éclairé Avatar de dfiad77pro
    Homme Profil pro
    Responsable Architecture logicielle
    Inscrit en
    Décembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Architecture logicielle
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 545
    Par défaut
    Tu peut aussi utiliser le framework .net 3.5 sp1 qui corrige de nombreux problèmes de performance de wpf

    http://www.microsoft.com/downloads/d...displaylang=fr

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    L'outil recommandé par Jerem22 est le plus approprié pour détecter les problèmes de performances.

    Sinon, l'idée d'installer le SP1 du FX .NET 3.5 est une bonne idée car il inclut un grand nombre d'amélioration de perf.

    Sinon, si tu as le SP1, tu peux activer le défilement différé (IsDeferredScrollingEnabled) sur les ItemsControl: ca te permet de gagner aussi en perf.

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 97
    Par défaut
    Rebonjour et merci pour vos réponses.

    C'est vrai que j'ai oublié de le préciser mais je travaille bien avec le framework .net 3.5 SP1.

    J'ai vais essayer de vous expliquer brièvement ce que fait mon client.
    Pour simplifier, le client affiche un plan de bâtiment en 2D et permet de localiser des personnes dans le bâtiment (les personnes portent des tags Wi-Fi sur eux).

    Le bâtiment est "dessiné" via des Polygon et les personnes sont représentées par des UserControl que j'ai créés.

    En WPF, j'ai créé :
    - un ScrollViewer (celui qui est lent) avec dedans :
    - une Grid qui contient :
    - plusieurs Canvas (1 Canvas par étage de bâtiment) qui eux-mêmes
    contiennent :
    - soit des Polygon (pour représenter les pièces)
    - soit des UserControl (pour représenter les personnes)

    Quand il n'y a que quelques personnes dans le bâtiment, tout va bien, le client est rapide.

    Par contre, il peut y avoir jusqu'à 3000 personnes. Et lors des tests de montée en charge, ca devient n'importe quoi. Le client devient extrèmement long.

    J'ai un timer qui, toutes les 2 secondes, récupère le nouvel emplacement des personnes, supprime les UserControl et les redessine au nouvel endroit.

    Le soucis est que, lorsque j'ai 3000 personnes, ma méthode qui supprime et redessine les UserControl prend plus que 2 secondes !

    J'ai cité le cas de l'ascenseur qui était lent mais ce n'est qu'un exemple. Tout le client est très lent.

    J'ai essayé d'utiliser le Visual Profiler mais je n'arrive toujours pas à voir où est le soucis. J'ai de gros gros problèmes de lenteur quand je l'utilise. Logique puisque mon processeur est à la ramasse.

    Je n'arrive pas à savoir ce qui prend du temps : redessiner les UserControls ou les traitements que je fais à côté.

    Est-ce que quelqu'un a déjà rencontré de gros soucis de performance comme celui-ci? Comment puis-je faire pour au moins comprendre ce qui se passe?

    Merci, Cécile.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Au lieu de supprimer/recréer à chaque fois tes UserControl, pourquoi tu ne les replace pas simplement au bon endroit ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <MonUserControl Canvas.Left={Binding Path=LeftPosition} Canvas.Top={Binding Path=TopPosition} .../>
    Il "suffirait" alors de mettre à jour les propriétés LeftPosition et TopPosition pour replacer tes personnes au bon endroit Tu pourrai déjà gagner un peu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de performance sur application WPF 4 (rendertransform ? cast ?)
    Par tom741 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 20/05/2010, 14h13
  2. [jeu]problème de performance d'un algo
    Par le Daoud dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 30/05/2005, 16h07
  3. [C#] Probléme de performance avec IsDbNull
    Par jab dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/04/2005, 11h39
  4. [oracle 9i][Workbench]Problème de performance
    Par nuke_y dans le forum Oracle
    Réponses: 6
    Dernier message: 03/02/2005, 17h38
  5. [ POSTGRESQL ] Problème de performance
    Par Djouls64 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/05/2003, 16h18

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