Tutoriel : un code java plus rapide

Soyez le premier à donner votre avis sur cette source.

Vue 8 785 fois - Téléchargée 1 724 fois

Description

Le but de ce tutoriel est d'expliquer quelques grands principes de codage en Java pour que
améliorer la vitesse d'éxécution des programmes en limitant les appels au garbage collector.
Ce tutoriel utilise plusieurs design pattern qui sont expliqués sommairement mais qui sont
très bien documentés sur internet.

Les fichiers exemple sont joints.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Il y a le forum pour ca...
Utilisateur anonyme
Bonjour

Je ne suis pas d'accord avec certaines choses que tu avances, notamment sur la JVM de Sun, tu pourrais au moins argumenter, avancer des éléments de preuve.

Le passage sur le singleton ne distingue pas la "lazy instantiation" et l'instantiation au démarrage. Ton implémentation n'est pas thread-safe.

L'"object pooling" est déconseillé depuis Java 1.4 comme il ne permet plus d'améliorer les performances donc la partie 1.5 n'est pas d'une grande utilité.

La partie 1.6 est fausse. Mettre les références à null n'est pas suffisant. Si tu appelles System.gc() sans lancer la finalisation des objets avec System.runFinalization(), ça ne va pas servir à grand chose. Appeler System.gc() trop souvent est très dangereux et peut causer des problèmes de gestion du cache de la machine virtuelle. Tu aurais mieux fait de parler des paramétrages de la JVM et du choix du ramasse-miettes, notamment du G1.

Ton tutoriel ne permet pas d'améliorer nettement les performances, ton approche est très naïve. Bon courage.
Messages postés
2
Date d'inscription
vendredi 29 décembre 2000
Statut
Membre
Dernière intervention
25 novembre 2010

Salut,

Le plus important dans ce que j'ai rajouté, c'est :
1 - Initialiser les attributs par l'instanciation de la classe dans la méthode newInstance(), cela permet de garder toujours les bonnes pratique en programmation objet.

2 - L'instanciation se fait dans une méthode synchronisée (très important), car on peut considérer que le corps de la méthode getInstance() comme section critique. L'instance peut être sollicitée par plusieurs threads en même temps ce qui peut provoquer un inter-blocage (sujet très vaste et riche à la fois), ici la méthode newInstance() sert de verrou.
J'espère te convainre...
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Enfin, on peut presque faire comme tu le fais, si on utilise des attributs à la classe, on s'orientera plutôt vers le design pattern poids mouche avec une HashMap pour conserver tous les objets créés. Je vais bientot poster une nouvelle version et j'explique cette méthode.

Merci
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Ha non, je vois ce que tu veux dire, c'est utiliser le constructeur avec deux attributs, oui, c'est vrai, j'ai instancié les variables directement par facilité mais on peut aussi faire comme tu le fais.
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.