Bonjour,
je suis en train d'essayer d'accélérer une application web JEE. Comme souvent, on extrait des données d'une base et ensuite on stocke les objets (et souvent beaucoup) resultatnts dans les collections.
Il existe en java plusieurs façon de créér des objets:
*) new MonObjet();
*) (MonObjet) Class.forName("PackageName.ClassName").newInstance();
*) utilisation de la méthode clone (pour les objets implementant Cloneable)
*) via une Factory, spring, ..;
*) etc...
J'ai fait des tests avec des objets de type Calendar et dans ce cas, la création des objets via clone() a été beaucoup plus rapide (facteur 15 ) que par la méthode Calendar.getInstance();
En revanche, sur une objet de type Personne avec juste deux attributs nom et prenom, la méthode classique (new Personne(nom,prenom) )a donné des temps de traitement beaucoup plus rapides qu'avec .clone(). (3 flois plus lent)
Je suis surpris de l'inversion des vitesses de traitements et je ne comprend pas d'où viens cette inversion. Si quelqu'un a une explication?
De façon plus générale, quelle est la méthode qui permet d'instancier une collection d'objet le plus rapidement et pourquoi (différence par rapport aux autres méthodes) ?
Est-ce que la méthode la plus rapide dépend des caractéristiques des objets instanciés? Si oui, quels sont les critères influants?
merci
Partager