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

Langage Java Discussion :

Optimisation et performance


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Optimisation et performance
    Bonjour

    je cherche un doc qui contiendrai les trucs et astuces afin d'avoir un code java le plus optimisé possible. Je n'ai pas réussi à mettre la main sur quoi que ce soit qui correspond à mes attentes.

    Je me pose des questions du genre : qu'est-ce qui est le mieux entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(-------) {
      Objet o = new Objet();
      |
      |
      |
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Objet o;
    for(-------) {
      o = new Objet();
      |
      |
      |
    }
    ou est-ce équivalent en terme de performance?

    Voilou.

    Merci de votre aide.

    Bonne soirée

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 572
    Points
    1 572
    Par défaut
    Bonjour,
    dans l'absolu la 2eme solution est meilleur, une seul declaration d'objet contre autant que tu passe dans la 1ere solution. Par contre ce genre de détail est maintenant optimisé par les compilateurs actuel qui optimise le code source je pense mieux que nous...

    En gros dans la solution 1 ton compilo (ici machine virtuelle) devrai te le sortir de ta boucle.

  3. #3
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Les performances sont comparables, la déclaration de l'objet dans la boucle ne consomme pas d'instructions, l'emplacement mémoire est réservé une fois pour toutes dans la pile en début de méthode.
    Par contre, la première solution est de loin la meilleure en terme de programmation, en limitant la portée de l'objet à l'intérieur de la boucle, tu ne risques pas d'y accéder par erreur en dehors. Et pour la facilité de lecture et de compréhension du code, les variables doivent être déclarées le plus proche possible de leur utilisation).

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par herve91
    Les performances sont comparables, la déclaration de l'objet dans la boucle ne consomme pas d'instructions, l'emplacement mémoire est réservé une fois pour toutes dans la pile en début de méthode.
    Par contre, la première solution est de loin la meilleure en terme de programmation, en limitant la portée de l'objet à l'intérieur de la boucle, tu ne risques pas d'y accéder par erreur en dehors. Et pour la facilité de lecture et de compréhension du code, les variables doivent être déclarées le plus proche possible de leur utilisation).
    +1

    beaucoup de personnes, notament celles qui sont orientées électronique "brute", pensent encore le contraire et cherchent à optimiser des détails comme ceux-là

    Penses à optimiser les algorithmes, il n'y a que là que tu pourra faire la différence entre en programme lent et un rapide... ensuite, cherche à faciliter la compréhension du code, c'est bien plus important que les perfs... d'ailleurs, il est souvent conseillé de ne PAS chercher à optimiser un code avant que le besoin s'en fasse sentir.


  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Voici un lien qui recense les optimisations liés aux performances.
    Très instructif.
    http://www.javaperformancetuning.com/tips/rawtips.shtml

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Merci à tous pour ces informations.

    Ce dernier lien est particulièrement interressant.

    ++

    Loïc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimiser les performances try/catch ?
    Par KiLVaiDeN dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2014, 14h47
  2. Réponses: 13
    Dernier message: 18/07/2011, 18h24
  3. Optimisation des performances sur station SUN
    Par TiChabin972 dans le forum Général Java
    Réponses: 1
    Dernier message: 20/07/2007, 18h26
  4. Optimisation des performances
    Par GLSpirit dans le forum C++
    Réponses: 14
    Dernier message: 12/05/2007, 15h18
  5. Réponses: 2
    Dernier message: 29/08/2005, 17h12

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