Flux RSS

mercredi 6 décembre 2006

Optimisation de code Java

Je fais du benchmarking du coeur de la GED, et ouf, les résultats sont en adéquation avec mes prévisions. Je vous donne quelques chiffres, comme ça...

La fonction la plus sollicitée, qui est aussi la plus rapide (la vie est bien faite, non ?), est SessionImpl:getUserId et elle s'exécute en moyenne en seulement 0,239 millisecondes.

La fonction qui a le temps d'exécution record est SessionImpl:listUsersLogins, avec un maximum de 863,118 millisecondes. Et pourtant, cette fonction s'exécute aussi en un minimum de 0,249 millisecondes après. Pourquoi ? Cette fonction est tout simplement la première qui est appellée, et c'est donc elle qui déclenche la connexion à la base de données, qui déclenche la création de la base de données si elle n'existe pas. Moins de 0,8 secondes pour initialiser le système, ce n'est pas mal :-) En fait, j'utilise un schéma d'initialisation retardée, c'est à dire que la base de donnée n'est créée/connectée que quand on veut y accéder, le thread d'émission des emails de notification n'est lancé qu'à la première demande d'envoi de mail, etc etc. Ce schéma d'initialisation est excellent, et il evite les grosses fonctions d'init qui ont tendance à casser la pensée modulaire (je me comprends).

La fonction la plus lente en moyenne est en toute logique DocumentImpl:create (création d'un document) avec 352,450 millisecondes (tests avec des petits documents).

Globalement, c'est assez rapide, mais je dois continuer les tests avec des situations plus réelles.

Je compte intégrer définitivement le système de mesure des temps d'exécution dans le coeur de la GED, car les données qu'ils fournit seront capitales pour guider les évolutions futures. Je compte même ajouter une fonctionnalité d'envoi des résultats sur mon serveur (par un POST HTTP journalier), que je puisse aggréger ces informations et obtenir une vue synthétique.

Et toi, là, oui, toi!

Noël approche, vous n'avez pas d'amis et trop d'argent ? Alors vous pouvre m'offrir:
- Une SqueezeBox Wifi toute noire
- Un Shek d2 Non-OS TDA1545A DAC
- Un routeur Wifi Linksys WRT54GL (noyau Linux) pour palier aux problèmes et limitations de ma FreeBox v4
- Un écran plat LCD 19 pouces pas cher ou de qualité.

Bon, j'arrête de me faire des idées et je retourne travailler gagner des sous et m'offrir ça pour Noël 2007 :-)

La galère

Ce matin, je dois commencer la création d'une plaquette publicitaire voulue dynamique et colorée tout en gardant un aspect professionnel.

Quelle galère.

La mise en page, ce n'est définitivement pas mon truc.