Re,
Je voudrais savoir la méthode la plus appropriée pour fermer un jDialog, dans un programme gourmand en mémoire.
Setvisible(false) ou dispose()??
Est-ce vraiment important ou pas?
merci
Version imprimable
Re,
Je voudrais savoir la méthode la plus appropriée pour fermer un jDialog, dans un programme gourmand en mémoire.
Setvisible(false) ou dispose()??
Est-ce vraiment important ou pas?
merci
setVisible ne détruit pas une Window, elle la cache juste.
Dispose lui détruit la Window et les ressources associées.
Tout est marqué dans la javadoc
Si tu as un nombre conséquent de fenêtre dans ton application, essaie de les ouvrir et les fermer en faisant des setVisible(false); tu vas vite voir la mémoire de ton application augmentée.
dispose() pour la destruction ;-)
Je voulais énoncer le fait de créer des objets fenêtres sans arrêt et de les fermer (soit disant avec setVisible(false)). Plus la création d'objets est grande plus la mémoire est utilisée. ;)
Je m'étais mal exprimé, ta remarque était judicieuse.
C'est pas logique ce que vous dites, si le fait de faire un setvisible(false) efface pas de la mémoire les ressources, alors comment se fait t'il que selon vous ca optimise la mémoire?
Alors qu'un dispose détruit tout.
J'aurais plutot di, qu'un setvisible fera gagner en perfs mais pas en mémoire si y'a trop de fenetre et etc...
Alors qu'un dispose fera un peu perdre des perfs le temps de tout virer, mais optimisera la mémoire. NON?
Natha n'a pas dis ça, il a dit d'utiliser toujours le(s) même(m) JDialog (se servir d'une instance préexistante) , pas d'en ouvrir 50 sans les fermer.
J'aurais mieux fait de ne rien dire... je crois avoir un peu embrouillé :p
Ah ok, c'est ce que je fais :-)
Mais ca ne repond pas à ma question du coup?
J'ai deux classes jDialog pour les msg :1avec "ok" l' autre avec "oui", "non"
et 1 jdialog filechooser pour devienz quoi!
Mais c'est pas ca qui surcharge la mémoire, je suis ok.
Mon appli est gourmande pour tout le reste(BDD de millions d'entrées à gérer par exemple, et interface graphique évoluée(images,menus deroulants avec bcp d'items).
En fait, j'ai déjà essayé de développer un big programme, avec une version précédente (jdk 1.3), et la mémoire était assez vite saturée sans que le garbage collector puisse y faire grand chose (j'ai pas envie de refaire les même erreurs).
Donc ma question, c'est : dois je économiser la mémoire au maximum (je pense que oui évidementt), et est ce que faire un dispose() est négligeable ou pas.
Merki
Grosso merdo réalises une appli fonctionnelle, les perfs pourront toujours être améliorées par la suite.Citation:
Envoyé par Donald Knuth