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 :

instanceof VS creation d'objet


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 33
    Par défaut instanceof VS creation d'objet
    J'ai une bête question de perfo en JAVA:
    Qu'est ce qui prend le plus le temps en Java, l'utilisation d'un instanceof ou la création d'un objet, avec disons l'initialisation simple de 5 attribut dans le constructeur du style:


  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 698
    Par défaut
    Le instanceof devrait être bien plus rapide que l'instanciation d'un objet même avec un constructeur vide.

    instanceof ne fait ce comparer le type d'un objet ce qui est plutôt rapide. Alors que l'instanciation doit entre autre: allouer la mémoire pour l'objet, l'initialiser, executer le constructeur, ... ce qui prend du temps.

  3. #3
    Membre chevronné
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Par défaut
    la machine virtuelle effectue des optimisations dynamiques. en instanciant un objet (manière classique), non seulement tu restes dans une logique complètement objet
    mais tu t'ouvres à tout type d'optimisation ou vérification des données etc... (il faudrait savoir exactement ce qu'il se passe à la création d'un objet, les vérifications, les calculs d'allocations en fonctions de tous les objets et de leur futur taille potentielle etc...).

    personnellement, je créé mes objets de la manière la plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Object o = new Object();

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par guams Voir le message
    a création d'un objet, avec disons l'initialisation simple de 5 attribut dans le constructeur du style:

    Ce code ne construit rien du tout, tu n'a aucun nouvel objet, il ne fait que stocker dans this.toto la référence toto. soit une copie de 32 ou 64bits de données suivant l'implementation de la jvm.

  5. #5
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 698
    Par défaut
    Il précise bien qu'il ne s'agit pas du code qui crée l'objet mais de ce code dans le constructeur pour l'initialiser. Cela permet de donner une idée claire de la complexité du constructeur(dans le cas présent très simple). Ce n'est pas idiot du tout car en effet, suivant de code qui est dans le constructeur, la durée d'un new peut complètement changer.

    Cela dit même si le constructeur était vide, le instanceof sera quand même plus rapide que le new.

Discussions similaires

  1. Creation d'objet a partir d'un fichier - espace de nom -
    Par LLEJEUNE1 dans le forum Général Python
    Réponses: 2
    Dernier message: 05/04/2006, 12h13
  2. probleme de creation d'objet cristal report
    Par sam_12_3 dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 03/04/2006, 13h58
  3. creation d'objet de classe a partir de string
    Par mencaglia dans le forum C++
    Réponses: 1
    Dernier message: 14/03/2006, 09h56
  4. [debutant] Creation d'objet au fur et a mesure
    Par jamesleouf dans le forum Débuter
    Réponses: 8
    Dernier message: 14/03/2006, 00h06
  5. Lancer des shell unix pour creation d'objet ORACLE
    Par sygale dans le forum Administration
    Réponses: 6
    Dernier message: 27/10/2004, 18h03

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