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

Silverlight Discussion :

[SL 4] Régler les performances


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut [SL 4] Régler les performances
    Bonjour,

    Après plusieurs de tests de mon application je remarque des soucis de performances sur le chargement à plusieurs reprises d'une page assez lourde en composants et donc de propriétés bindées par le ViewModel.

    J'ai fait des recherches et la première chose à réaliser est de désabonner les événements..
    Ensuite il faudrait également utiliser un pattern : le WeakEvent , afin également de nettoyer les propriétés bindées comportant un appel à OnPropertyChanged.

    Mais en dehors de ça ? avez-vous d'autres astuces ? des exemples de code afin de gagner en performance et éviter que mon appli consomme plus de 300 megs rapidement à cause des retours de pages ?

    Merci pour vos réponses,

  2. #2
    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
    Tu peux essayer de faire de la virtualisation, si tu as beaucoup de données qui doivent-être affichées dans l'interface graphique.

    La pagination est un autre moyen de gagner en perf.

  3. #3
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    J'ai effectivement beaucoup de données... Mais qu'entends tu par "virtualisation" ?

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    Ensuite il faudrait également utiliser un pattern : le WeakEvent , afin également de nettoyer les propriétés bindées comportant un appel à OnPropertyChanged.
    Tu ne devrais pas gagner en performance en nettoyant correctement tes abonnements aux evenements mais juste de la place mémoire. Bon le GC devrait te remercier un peu aussi

    Au passage, tu trouveras une bonne librairie WeakEvent et explication ici :
    http://blog.thekieners.com/2010/02/1...r-silverlight/

  5. #5
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Ok j'ai déjà vu cet article mais je me demandais si l'utilisation de ce pattern allait résoudre tous mes problèmes.
    C'est pour avoir un retour d'expérience en fait que j'ai ouvert ce post, peut-être qu'il y a d'autres astuces.

    J'ai lancé également quelques commandes du GC mais ça n'a pas l'air d'être miraculeux.

    Merci pour vos réponses quand même

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    J'ai lancé également quelques commandes du GC mais ça n'a pas l'air d'être miraculeux.
    Si tes deabonnement aux evenements provoquent des MemoryLeaks, le GC ne pourra rien faire malheureusement.
    Les WeakEvents devrait répondre à ta problématique de nettoyage mais, comme je te le disais tout à l'heure, sans doute pas a tes soucis de performance.

    Par virtualisation, je pense que Thomas entend celle des ListBox. Elle est active de base sur les ListBox quand tu utilises les ItemsTemplate. Les listbox utilise un VirtualizingStackPanel pour fonctionner.

    Si tu as beaucoup de controles sur ta page et que tu peux les fractionner en page, le control de naviguation Frame pourrait t'être utile car il ne crée les controles que lorque tu y accèdes.

  7. #7
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    le control de naviguation Frame pourrait t'être utile car il ne crée les controles que lorque tu y accèdes
    Mais par défaut il les recrée à chaque fois, donc il faudra sans doute également gérer la navigation, en s'assurant de n'avoir que des instances uniques des interfaces.

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

Discussions similaires

  1. Optimiser les performances try/catch ?
    Par KiLVaiDeN dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2014, 13h47
  2. Que faire lorsque les performances d'une base chute ?
    Par Doctor Z dans le forum Oracle
    Réponses: 11
    Dernier message: 16/02/2005, 14h38
  3. Le calcul des stats dégrade les performances
    Par jo007 dans le forum Oracle
    Réponses: 18
    Dernier message: 15/02/2005, 09h42
  4. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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