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

Composants Java Discussion :

Amélioration perfo JTable


Sujet :

Composants Java

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Points : 149
    Points
    149
    Par défaut Amélioration perfo JTable
    Bonjour à tous,

    Je souhaiterais savoir comment structurer ma JTable.
    En fait, ma table est tout ce qu'il y a de plus basique, mais le seul souci, c'est que je la trouve un peu lente au vu du nombre de données que je charge (environ 140 lignes et 4 colonnes).

    Le petit hic, c'est que chaque colonne affiche une valeur (jusque là normal me direz-vous), mais j'ai besoin des valeurs des autres colonnes dans mes renderer afin de changer certaines choses telles que la couleur de fond, la couleur de la police, etc.

    Et cela m'embête un peu car au final cela fait pas mal de calcul dans mes renderers je trouve. Mes renderers héritent tous d'un DefaultTableCellRenderer car ils n'affichent que du texte.

    Une idée de piste d'amélioration ?

    Merci à tous !

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Lancer un profiler, ensuite jouer avec la table et regarder ou tout le temps semble consommer et voire s'il y'a moyen d'améliorer ça ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Points : 149
    Points
    149
    Par défaut
    Ouaip...

    Je viens de le faire avec la JConsole et en fait finalement je viens de me rendre compte que le problème ne venait pas de chez moi :-D
    Je ne monte pas à plus de 10% de proc en faisant mumuse avec ma table... Et ma heap de dépasse pas les 40 mega.

    Désolé du faux problème, j'avais timé mes méthodes mais au final je viens de me rendre compte que leur lenteur ne vient pas des ressources de ma machine.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Citation Envoyé par Dark_TeToN Voir le message
    Je ne monte pas à plus de 10% de proc en faisant mumuse avec ma table... Et ma heap de dépasse pas les 40 mega.

    Désolé du faux problème, j'avais timé mes méthodes mais au final je viens de me rendre compte que leur lenteur ne vient pas des ressources de ma machine.
    Ce n'est pas un faux problème si tu constate que quelque chose est lent. 10% si c'est du monothreadé sur un 8-10 "coeurs" c'est déjà gros à mon gout.

    Mais as tu mesuré sous forme de "call tree" quelles était les "méthodes" qui consommait le plus lorsque tu constates que "c'est lent" ?

    Va la petite taille de ton tableau, quelque chose ne tourne pas rond. Peut être calcule tu beaucoup de choses pour certaines colonnes et donc tu obtiens des lenteurs (surtout si tu fais plein de calcul dans les renderer je présume, ce n'est pas une bonne idée)

    Style :



    (ok c'est pas JConsole mais je suppose que y'a ce genre de truc aussi).

    Et la tu pourras mettre le doigts sur ce qui consomme niveau CPU.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 200
    Points : 149
    Points
    149
    Par défaut
    Non je ne peux pas le faire car je suis dans un environnement complexe et dans lequel je ne peux pas introduire de nouvel outil. Cependant, c'était un peu moins de 10% de proc pour toute l'appli, sur 2 procs lorsque je faisait "mumuse" vraiment à fond, sinon l'appli en elle-même dans une utilisation standard ne dépassait pas les 5%. Mais pour info, même la JConsole ramait donc ça ne venait pas de mon appli et en creusant, j'ai remarqué qu'il y avait beaucoup plus de réseau qu'il n'y paraissait, donc ça doit également venir de là !

    Mais merci quand même pour les tuyaux ! Ca me servira certainement pour plus tard ce petit outil de profilage ;-)

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

Discussions similaires

  1. conseil pour améliorer les perfos
    Par awalter1 dans le forum Général Python
    Réponses: 5
    Dernier message: 10/08/2012, 16h51
  2. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  3. [SWING]jTable + Focus
    Par chady dans le forum Composants
    Réponses: 5
    Dernier message: 27/02/2003, 14h51
  4. JBuilder7 & JTable Colonne alignement
    Par Tonton Luc dans le forum JBuilder
    Réponses: 5
    Dernier message: 06/11/2002, 17h32
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

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