Mon appli ralenti

g_fuck Messages postés 269 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 23 août 2011 - 29 août 2006 à 18:15
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 31 août 2006 à 15:44
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

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
29 août 2006 à 18:31
heu fait voir qq morceau du code (genre les boucle )
que fait ton appli ?
utilise tu des Thread ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 août 2006 à 18:35
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 !
0
g_fuck Messages postés 269 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 23 août 2011
30 août 2006 à 15:52
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 16:21
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
g_fuck Messages postés 269 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 23 août 2011
30 août 2006 à 17:21
envoir moi ta date d'annive joe...


Grand mercie!!!

J.BAHOLE
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 17:27
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
30 août 2006 à 18:30
81 ?? t'es plus vieux que moi ? Roh !

Lol
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 18:49
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
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
30 août 2006 à 18:53
taisez vous moi je suis du 7/10/89 :s
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 août 2006 à 19:42
roooo le jeunot

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

WORA
0
g_fuck Messages postés 269 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 23 août 2011
31 août 2006 à 15:02
.. je suis plus vieu que vous tous ... putain quelle honte!!!

J.BAHOLE
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
31 août 2006 à 15:13
Et vi papa lol

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

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
31 août 2006 à 15:30
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"
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
31 août 2006 à 15:38
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
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
31 août 2006 à 15:44
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"
0
Rejoignez-nous