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 : création d'objets Double d'origine inconnue


Sujet :

Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Problème mémoire : création d'objets Double d'origine inconnue
    Bonjour à tous.
    En cherchant à optimiser la vitesse d'un programme, j'ai remarqué que le GC fonctionnait beaucoup.
    Ne pouvant augmenter la mémoire utilisée par java, j'ai lancé le profiler mémoire de NetBeans pour voir quels objets étaient créés pendant le déroulement du programme et tenter d'optimiser.
    Je suis parvenu à limiter la création de nombreux objets et gagné pas mal en performance.

    Cependant, il reste un mystère que je ne parviens à résoudre : le profiler m'indique la création de très nombreux objets "Double" durant le traitement.
    Je suis certain que mon code ne crée pas directement des Double.
    (par contre, j'utilise beaucoup de "double" primitifs mais le GC n'est pas concerné par eux, à moins que je me trompe).

    Je n'utilise pas de Double[] ni de d'ArrayList<Double>, ni autre structure qui contiendrait des Double et qui pourraient entraîner des créations de Double par "boxing caché".

    Auriez-vous la moindre idée de fonctions Java qui pourraient créer des Double ?
    ou bien : Dans quelles circonstances java pourrait transformer un double primitif en nouvel objet Double ?

    Je sais que sans le code source, c'est compliqué de répondre (je ne peux poster les dizaines de milliers de lignes du code source...), mais je suis preneur de pistes éventuelles.

    Par exemple, j'avais pensé aux fonctions de StrictMath, que j'utilise pas mal, mais il semblerait que ce ne soit pas ca.

    Merci par avance pour vos idées lumineuses.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ca y est j'ai trouvé, grace a des options avancées du profiler :

    Certaines de mes méthodes étaient déclarées comme renvoyant un Double et non un double primitif.
    Même si les méthodes appelantes attendaient un double primitif, le compilateur ne disait rien !!
    Java faisait le boxing unboxing automatiquement sans trop le dire, et bonjour la consomation mémoire et le GC ...

    J'ai encore appris quelque chose ce soir ...

    Désolé pour le dérangement.

Discussions similaires

  1. [Débutant] Problème de création d'objet (ActiveX))
    Par Mat32 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 02/06/2011, 15h00
  2. Problème de création d'objet
    Par Maldus dans le forum Débuter
    Réponses: 2
    Dernier message: 08/12/2008, 15h37
  3. Vbs et html problème de création d'objet
    Par Picco dans le forum VBScript
    Réponses: 0
    Dernier message: 06/10/2008, 14h48
  4. Problème de création d'objet
    Par Gouyon dans le forum Delphi
    Réponses: 2
    Dernier message: 15/05/2007, 13h20
  5. Problème de création d'objets
    Par gids01 dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2006, 10h42

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