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:
Code:this.toto = toto;
Version imprimable
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:
Code:this.toto = toto;
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.
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:
1
2 Object o = new Object();
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.