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 :

JTable multiple mise à jour et fuite mémoire


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Par défaut JTable multiple mise à jour et fuite mémoire
    Bonjour à tous et merci par avance de votre aide.

    Je vous explique mon problème.

    J'ai une JTable basée sur un AbstractModel étendu avec un ArrayList comme data.

    Par défaut quand je fais des ajouts data.add(Object) puis firetablerowsInserted la ligne s'ajoute sans problème à mon tableau. Seul problème c'est qu'il peut m'arriver d'ajouter des centaines de milliers de lignes et du coup ma RAM monte vite à plus d'1Go.

    N'ayant pas spécialement besoin de toutes les lignes, je me suis dit c'est pas grave je vais faire défiler les lignes et garder visible dans mon JTable que les 100 dernières lignes (en faisant des add et remove quand cela dépasse) me disant que comme cela j'aurais une consommation mémoire stable.

    Malheureusement, cela ne change rien du tout, ma consommation mémoire continue d'augmenter malgré cela alors que dans l'idée à chaque ligne supprimée je pensais récupérer de la mémoire.

    J'ai pu voir que si je ne fais pas de firetablerowsInserted à chaque insertion mais juste firetabledataChanged à la toute fin de l'exécution du code, alors la mémoire est stable et peu consommatrice. J'en déduit donc un problème d’utilisation du composant graphique. Mais comme mes utilisateurs ont besoin de voir les lignes défiler j'ai besoin de trouver un moyen de faire autrement.

    Voilà pourquoi je demande de l'aide n'étant pas très familier avec l'utilisation mémoire des composants graphiques Java.

    Qu'est-ce-que j'ai mal compris et que je fais mal ?

    Et auriez vous des idées de comment faire mieux cela ?

    Merci beaucoup

    PS : Je ne peux pas mettre de code ce soir mais si besoin j'en mettrais demain.

    Bonne soirée

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Par défaut
    Comme je n'ai toujours pas trouvé de réponse à ma question.

    Je vous propose un exemple.

    Si on prend les sources de cet exemple : http://baptiste-wicht.developpez.com.../swing/jtable/ en prenant la classe JTableBasiqueAvecModeleDynamiqueObjet et qu'on boucle sur un modele.addAmi on voit très rapidement l'explosion mémoire que cela produit.

    Et cela se produit qu'on maintienne un nombre de lignes constants dans le tableau ou non ...

    Merci de votre aide

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/09/2009, 15h26
  2. [JTable] mise à jour des données
    Par tripop dans le forum Composants
    Réponses: 3
    Dernier message: 04/02/2009, 18h52
  3. mise à jour d'une JTable ?
    Par Sakalam dans le forum Composants
    Réponses: 11
    Dernier message: 15/09/2006, 15h06
  4. [JTable] Probleme pour afficher la mise à jour du modèle
    Par Yannick_from_31 dans le forum Composants
    Réponses: 2
    Dernier message: 02/06/2006, 19h10
  5. [JTable] Mise à jour
    Par le Daoud dans le forum Composants
    Réponses: 2
    Dernier message: 22/07/2005, 17h13

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