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

Java Discussion :

Augmentation de mémoire Java.


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Par défaut Augmentation de mémoire Java.
    Bonjour à tous,

    Je développe actuellement une application en Java/MySQL qui commence à être assez importante...

    J'ai un problème lors de l'utilisation de celle-ci.

    Dans mon application se trouve des JTabbedPaneX qui héritent des JTabbedPane, des JPanelX qui héritent de JPanel, des Canvas etc...

    Imaginons que j'utilise l'application "normalement", c'est à dire pendant un petit moment, je regarde le gestionnaire de mémoire de l'application, et celle ci, grimpe grimpe grimpe, jusqu'a un Java Memory Heap...

    J'ai aussi détecter cela: j'ai 7 onglets par exemple dans mon JTabbedPaneX

    [1] [2] [3] ...

    Si je clique rapidement sur [1] puis [2] puis [1] puis [2] etc... cela accélère l'augmentation de la mémoire jusqu'au fameux Java Memory Heap...

    Que faire ?

    J'ai vu des pistes sur addNotify ou removeNotify pour mes composants hérités...

    Je sais plus...

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Pour les problèmes de plomberie, chacun à sa méthode. Mais c'est d'autant plus difficile à détecter que le code est vaste. Donc procède par étape en supprimant des bouts de codes jusqu'à trouver la partie fautive.
    De manière générale, on peut parler des listes qui sont remplies sans jamais les vider, de connexions à des bases de données jamais fermées, de champs inutilement static...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Par défaut
    et sinon personne ne vois pourquoi lorsqu'on clique sur les onglets rapidement cela fait augmenter terriblement le niveau de mémoire ?

    merci

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    tu devrais installer un profiler, vu que tu sais comment reproduire le phénomène ça devrait être facile à dépister.

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par vincevince Voir le message
    et sinon personne ne vois pourquoi lorsqu'on clique sur les onglets rapidement cela fait augmenter terriblement le niveau de mémoire ?

    merci
    Ca vient de ton code. Le composant par lui-même fonctionne bien, je n'ai jamais eu de soucis. Donc si tu ne donnes pas ton code, on ne peut rien faire
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 9
    Par défaut
    Classe JTabbedPaneX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    public class JTabbedPaneX extends JTabbedPane implements ChangeListener {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	/**
             * 
             */
    	public JTabbedPaneX() {
    		super();
     
    		init();
    	}
     
    	/**
             * 
             * @param position Position
             */
    	public JTabbedPaneX(final int position) {
    		super(position);
     
    		init();
    	}
     
    	/**
             * Initialisation du composant.
             */
    	private void init() {
    		setBackground(ConfigurationXML.Instance().getBackPanel());
     
    		this.addChangeListener(this);
    	}
     
    	/**
             * @param e Evenement
             */
    	@Override
    	public final void stateChanged(final ChangeEvent e) {
    		Object obj = e.getSource();
    		JTabbedPane tmp = (JTabbedPane) obj;
     
    		for (int i = 0; i < tmp.getTabCount(); i++) {
    			if (i == tmp.getSelectedIndex()) {
    				tmp.setBackgroundAt(i, ConfigurationXML.Instance().getBackButton());
    			} else {
    				tmp.setBackgroundAt(i, ConfigurationXML.Instance().getBackPanel());
    			}
    		}
    	}
    }


    Classe JPanelX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    public class JPanelX extends JPanel {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	/**
             * 
             */
    	public JPanelX() {
    		super();
     
    		setColor();
    	}
     
    	/**
             * 
             * @param grid GridLayout
             */
    	public JPanelX(final GridLayout grid) {
    		super(grid);
     
    		setColor();
    	}
     
    	/**
             * 
             * @param borderLayout BorderLayout
             */
    	public JPanelX(final BorderLayout borderLayout) {
    		super(borderLayout);
     
    		setColor();
    	}
     
    	/**
             * 
             */
    	private void setColor() {
    		this.setBackground(ConfigurationXML.Instance().getBackPanel());
    	}
    }

    voila voilà...

    car dans mes JTabbedPaneX je met des JPanelX.

    merci.

Discussions similaires

  1. Augmenter ma mémoire java ?
    Par safèsaf dans le forum Applets
    Réponses: 0
    Dernier message: 16/05/2010, 21h53
  2. Gestion de Mémoire Java
    Par lebulls dans le forum Langage
    Réponses: 5
    Dernier message: 18/07/2006, 10h35
  3. commetn augmenter la mémoire
    Par chouchou93 dans le forum Eclipse Java
    Réponses: 14
    Dernier message: 27/06/2006, 12h09
  4. [MFC] Augmentation en mémoire
    Par pitch21 dans le forum MFC
    Réponses: 21
    Dernier message: 20/07/2004, 13h01

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