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 :

Problème mémoire java


Sujet :

Java

  1. #1
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut Problème mémoire java
    Bonjour, j'ai un souci avec la mémoire sur mon programme

    En effet, en me balladant dans celui ci, je constate que le processus javaw ne fait qu'augmenter, même quand je fais successivement 2 fois la même opération, gourmande, mais la même.

    2 question :

    Est ce que cette information dans la barre des taches windows est fiable?

    Comment faire pour optimiser mon programme de ce point de vue, car au bout d'un moment, dès qu'on aura dépassé le heap space, ca va planter...

    Merci
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  2. #2
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut hum...
    En fait, ca ne me fait ca que dans un seul panel du programme, qui concerne la récupération de données DB2 et l'affichage dans une Jtable.

    Tous les autres panels, à leur fermeture permettent de récupérer les quelques Mo utilsés pour leur fonctionnement.

    Mais je ne vois pas bien ce que j'ai fait de plus... à part que la quantité de mémoire nécessaire à l'opération est plus grande...
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Salut,

    Difficile à dire... Etant donné que tu as un échange avec la base, es-tu sûr que bien fermer toutes les ressources (statements, ...) ?

  4. #4
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut Non
    Effectivement je n'utilise pas statement.close();

    mais cette opération est automatique apres le timeout non?

    Je vais essyaer de faire ca avec le resultset aussi, ca doit venir de la je pense

    J'aimerai savoir sur quelle valeur est le timeout JDBC à la base?
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par donnadieujulien Voir le message
    Effectivement je n'utilise pas statement.close();

    mais cette opération est automatique apres le timeout non?

    Je vais essyaer de faire ca avec le resultset aussi, ca doit venir de la je pense

    J'aimerai savoir sur quelle valeur est le timeout JDBC à la base?

    Oui peut-être mais il est fortement conseillé d'utiliser les close() directement dans ton code pour libérer la mémoire des que tu n'en as plus besoin et éviter ainsi les fuites (OutOfMemory).

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    suivant ton serveur de base de donnée, le timeout peut etre assez long. Voir inexistant! Après tout, quand on utilise un connection pool, on aimerais bien que les connection ne passent pas en timeout même si çà fait 12h qu'elle trainent dans le pool. Pour référence, par expérience, sur le serveur oracle de mon boulot, le timeout était de 8h! Résultat, connection pool d'un intranet foireux au petit matin après une nuit de "dodo"

  7. #7
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut Ok
    Effectivement en déclarant des variables locales statement+resultset, la mémoire n'est plus autant mangée qu'avant.

    Mais ca augmente quand meme toujours un peu petit à petit suivant les opérations....

    Y a pas un outil de diagnostic, un truc parce que si je dois vérifier les variables une par une jen ai jusqu'à noel...2012!!!

    Merci de votre aide
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si, et ils sont vachement utiles pour localiser les fuites de mémoire. Ce sont les profilers Personnellement, j'utilise jprofiler (outil payant), mais il en existe des gratuit. Accessoirement, tu peux avoir une version d'essai complète avec une licence de 30 jours

  9. #9
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par donnadieujulien Voir le message
    Effectivement en déclarant des variables locales statement+resultset, la mémoire n'est plus autant mangée qu'avant.

    Mais ca augmente quand meme toujours un peu petit à petit suivant les opérations....

    Y a pas un outil de diagnostic, un truc parce que si je dois vérifier les variables une par une jen ai jusqu'à noel...2012!!!

    Merci de votre aide
    tu peux utiliser netbeans... il y en a un d'inclus dedans...

  10. #10
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Juste comme ça , regarde cette entrée de la FAQ :

    Comment libérer proprement les ressources (ou comment utiliser proprement les bloc try/finally) ?

    C'est de cette manière qu'il faut que tu fermes tes différents objets connection, statements et resulset ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

Discussions similaires

  1. Problème de mémoire: Java heap space
    Par Benduroy dans le forum Général Java
    Réponses: 3
    Dernier message: 20/05/2011, 15h14
  2. Problème mémoire Java heap space avec tableau et ArrayList
    Par phoenix420 dans le forum Collection et Stream
    Réponses: 45
    Dernier message: 22/06/2010, 10h01
  3. Problème mémoire d'execution d'une appli java en commande shell
    Par Djinner² dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/07/2008, 17h34
  4. Problème mémoire vive et Java.
    Par Greg.shogun dans le forum Général Java
    Réponses: 3
    Dernier message: 09/05/2008, 10h41
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20

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