jeudi 30 septembre 2010

les avantages et inconvénients de Mockito

Cet article vous présente les avantages et les inconvénients de Mockito.
De plus, une comparaison est disponible avec EasyMock.

Je ne connais qu'EasyMock, j'ai pu l'utiliser avec PowerMock.
Je trouvais le code très verbeux et assez complexe à appréhender.
Il semblerait que Mockito permette de gagner quelques lignes de code.
Si vous désirez un petit comparatif entre les deux, c'est disponible ici.

mardi 14 septembre 2010

Terracotta et la gestion du Garbage collector

Comment se passer des limites du garbage collector de la JVM ?
En utilisant Terracotta!

La définition du module "BigMemory" s'insère dans le fichier de configuration d'ehcache.
Leurs tests montre qu'il est possible d'avoir un garbage collector de 200Go.

Ce module sera disponible en octobre.

Plus d'info ici et ici aussi.

mardi 31 août 2010

Des tests JUnit plus lisibles

Dans une classe, on arrive vite à des assert longs et parfois compliqués.
A la fin, il faut bien l'avouer, les tests unitaires deviennent vite verbeux, rendant la compréhension difficile.
Hamcrest est une librairie qui simplifie l'écriture des assert.
Par exemple, on peut vérifie qu'une liste contient une valeur en faisant :

assertThat(aList, hasItem("aString"));
Vous trouverez plus de détails ici.
Le projet est hébergé sur google code.

jeudi 22 juillet 2010

Le top ten des problèmes de performance

Voici un lien vers le top ten des problèmes de performances.
1) Trop d'appels aux bases de données
2) Trop de synchronisation
3) manque d'attention au traffic réseau (latence, sérialisation)
4) Mauvais usage du mapping objet/relationnel
5) fuite mémoire
6) l'utilisation de dépendances problématique ou mal maitrisée
7) gaspillage des ressources
8) des applications "bouffies" qui chargent des ressources mal dimensionnées (images, javascript...)
9) mauvaise stratégie de cache
10) problèmes intermittents

L'intérêt de ce billet est qu'il donne des pistes pour résoudre chacun d'eux.

vendredi 16 juillet 2010

différences entre les caches JPA 2.0 et Hibernate

Cet article présente les différences entre les caches de JPA 2.0 et ceux d'Hibernate.
Agrémentés d'exemple, les niveaux L1 et L2 de JPA sont présentés.
Puis c'est une introduction aux caches d'Hibernate qui est décrite.

D'après cet article, et sachant qu'Hibernate 3.5 supporte toutes les fonctionnalités de JPA 2,
il serait plus intéressant d'utiliser Hibernate que JPA seul.

Mais à vous de vous forger un avis.
Si vous ne connaissez pas JPA, je vous conseille ce tutoriel sur Spring 3, maven et JPA.

Java performance monitoring

Il y a quelques temps, ibm avait sorti un premier billet sur le monitoring d'applications Java.
En début de semaine est sorti le deuxième volet avec de courtes présentation de :
- jhat : analyse de la heap
- jmap : dump de la heap
- jstack : stack trace de thread
- jstat : statistiques de performances
- jps : des infos sur la JVM

J'en profite pour mettre un lien sur les séries des '5 choses que vous ne savez pas à propos de...' sur le site d'IBM.

mardi 6 juillet 2010

L'introspection

L'introspection ou "Reflection" en anglais est utilisé dans la majorité des frameworks les plus célèbres (Struts, Spring, etc.).
Pourtant, on peut penser que l'utilisation de l'introspection se fait au détriment des performances.
Cet article présente la manière d'optimiser les appels et les cas dans lesquels cette méthode peut être utilisé.