On entend toujours les développeurs et intégrateurs râler sur les lenteurs de Liferay, besoin de redémarrer, long à chaque appel…
Les optimisations du poste de développement sont comme les optimisations du serveur de production essentielles à la bonne marche de votre projet.
Quelles sont les optimisations pouvant être effectuées sur un poste de développement :
- Utilisation des librairies natives de Tomcat.Il est possible de déployer le tomcat incluant les librairies natives et d’y déployer ensuite Liferay. Vous gagnerez en temps de réponse et en stabilité de la JVM
- Pré compiler l’ensemble des JSP de Liferay et des plugins déployés.Cela permet d’éviter le temps de compilation de chaque JSP, en sachant qu’il y en environ 1300 !Retirer les modules qui ne seront pas utilisé en production, exemple OpenSocial, Sync Web… Par contre l’inverse n’est pas vrai, ne pas retirer les plugins qui seront déployés en production.
- Désactiver le rechargement à chaud de Liferay.Ajouter l’attribut reloadable= »false » dans le ROOT.xml de Tomcat
- Utiliser une base de donnée tierce et non HSQL.Il peut paraitre judicieux d’utilisation HSQL pour éviter d’avoir une base de données locale de type MYSQL, cela permet en autre de s’échanger rapidement une base de données entre développeur. L’inconvénient est de rallonger les temps de démarrage et d’alourdir la JVM.
- Ajouter un frontal Apache.Cela permet de retirer le filtre de compression Liferay et d’activer le mode Deflate d’Apache, faire servir les fichiers static de Liferay par Apache.
Pour simplifier l’installation d’Apache, Mysql sur un poste de développement, vous pouvez utiliser XAMPP.
Finalement, vous pouvez constater que le poste de développement doit être optimisé comme un environnement de production afin d’accroitre les performances de Liferay tout en laissant activé le rechargement à chaud des modules. Cela permet également au développeur de tester avec une configuration proche de celle de production (HTTPS, Compression,…)
La première étape d’un projet sera donc de construire ce bundle de développement avec l’ensemble des optimisations. Ces principes sont également applicables à des projets non Liferay.