Mon appli ralenti

Messages postés
269
Date d'inscription
lundi 29 novembre 2004
Statut
Membre
Dernière intervention
23 août 2011
-
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
-
salut!!! j'ai une emmerde!!!
vous est il deja arrive d'avoir une application qui sur son lancement , marche comme sur des roulettes et que petit a petit le deroulement des Events  se mette a ralentir jusqu'a un point ou tout stop?
    est ce que un grand nombre de variable est capable de provoquer un truc pareil?

J.BAHOLE

15 réponses

Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
heu fait voir qq morceau du code (genre les boucle )
que fait ton appli ?
utilise tu des Thread ?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
si tu utilise des threads, ou si tu as des boucles infinie, c'est normal !

De plus, plus tu utilisera de variables, plus l'occupation mémoire est importante, et plus le programme risque de ramer.

Là aussi, il faut voir si tu n'as pas de fuites mémoires !
Messages postés
269
Date d'inscription
lundi 29 novembre 2004
Statut
Membre
Dernière intervention
23 août 2011

des threads non je n'en utilises pas .... boucles je sais pas trop ce que c'est mais je croix que le programme utilise beaucoups de variables ... je verais dans cette direction.


encore une chause .... est ce que la commande setVisible(false) est suffisante pour effacer un JFrame de la memoir? est si oui est ce que toutes ses composantes sont elles aussi detruites?


    ET c'est koi une boucle ?reil?

J.BAHOLE
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

Concernant la mémoire qui monte ce n'est pas un type primitif (int, float, etc..) qui va te la faire monter mais plus des BuffuredImage, Vector, ArrayList, ... qui peuvent vite prendre un max de ressourcesou encore si tu fais ce qui suit :

lors d'un appui sur un boutton tu creer une nouvelle fenetre et tu l'affiche (new Fenetre(...).setVisible(true)) et que pour la detruire tu fais setVisible(false) ici tu ne detruira absolument rien de ta fenetre et des que tu ferras un autre clic sur le bouton tu vas creer une nouvelle instance donc occuper encore plus de mémoire sans avoir libéré la fenetre precedente que tu pensais détruite... il existe 2 solutions pour eviter ce genre de problème :
1 - n'utilise pas la methode setVisible(false) pour detruire une fenetre mais dispose qui liberera les ressources utilisé
2 - ne reinstancie pas une fenetre (ou dialog, jdialog, frame, jwindow, window) mais favorise plus une instance unique(sauf si tu n'as pas le choix bien entendu) exemple avec la classe Test qui contient 2 boutons 1 pour afficher une JFrame et un pour la detruire

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame implements ActionListener{
   
    private static final long    serialVersionUID    = -1570645570118871214L;

    private JButton open = null;
    private JButton close = null;
   
    //on met en global pour ne garder qu'une instance
    private JFrame frame = null;
   
    public Test(){
        super("Test");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //init des boutons
       
        open = new JButton("Ouvrir");
        open.addActionListener(this);
        close = new JButton("Fermer");
        close.addActionListener(this);
       
        JPanel contentPane = (JPanel)getContentPane();
        contentPane.setLayout(new FlowLayout());
        contentPane.add(open);
        contentPane.add(close);
       
        pack();
        setLocationByPlatform(true);
    }
   
    //on ne creer qu'une instnce de la fenetre pour eviter les duplications
    private JFrame getFrame(){
        if(frame == null){
            frame = new JFrame("Fenetre");
            //petite initialisation
            frame.setSize(300, 300);
            frame.setLocationByPlatform(true);
        }
        return frame;
    }
   
    public void actionPerformed(ActionEvent e) {
        Object src = e.getSource();
        if(src.equals(open)){
            getFrame().setVisible(true);
        }else if(src.equals(close)){
            getFrame().dispose();
        }
    }
   
    public static void main(String [] args){
        new Test().setVisible(true);
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
269
Date d'inscription
lundi 29 novembre 2004
Statut
Membre
Dernière intervention
23 août 2011

envoir moi ta date d'annive joe...


Grand mercie!!!

J.BAHOLE
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

lol si tu veux 16/09/81

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
81 ?? t'es plus vieux que moi ? Roh !

Lol
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Lol, vi 24 ans et toutes mes dents

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
taisez vous moi je suis du 7/10/89 :s
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
roooo le jeunot

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
269
Date d'inscription
lundi 29 novembre 2004
Statut
Membre
Dernière intervention
23 août 2011

.. je suis plus vieu que vous tous ... putain quelle honte!!!

J.BAHOLE
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Et vi papa lol

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
ca me fait chier detre le cadet ...

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
c'est normale attend quelle idée d'etre si jeune lol

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
mdr comme si j'avais choisie :p

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"