La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.
Web
Le coin de la technique
Web
Ember.js bientôt en V1
Dans l’effervescence des Frameworks MVC Javascript, Ember.js est une des références et continue son petit bonhomme de chemin en proposant une pré-release de sa version 1.0, très attendue par sa communauté.
La dernière version (0.9.8.1) n’est pas si vielle puisqu’elle est sortie en mai dernier, pourtant de nombreuses améliorations sont apportées dans cette première version majeure, les plus importantes sont :
- Le routeur d’application, pièce essentielle qui manquait au Framework et était souvent présenté comme un défaut par rapport à backbone.js. Pour rappel le routeur a pour but de gérer les différents états d’une application SPA utilisant ce type de framework, avec une gestion de l’historique navigateur si possible.
- Le changement du scope des templates Handlebars, donnant ainsi la possibilité de faire appel au vue parent et simplifie les accès aux propriétés du contrôleur. Cependant ce changement cassera la compatibilité avec les applications utilisant les versions courantes d’Ember.
Cette pré-version doit encore subir quelques corrections/évolutions, notamment concernant des problèmes de fuite mémoire, et de changement léger sur l’API du routeur, mais devrait être disponible en version stable d’ici quelques semaines.
Pour en savoir plus vous pouvez consulter le billet, ou voir le changelog.
Le coin de la technique
Azul Systems offre une licence de Zing aux projets Open-Source
Chez Xebia, la performance, on aime ça. Vous avez d’ailleurs surement pu le constater par nos nombreux articles, formations, ateliers et conférences sur ce thème. La brève qui suit nous a donc fait particulièrement plaisir.
Azul Systems, la société qui édite la JVM Zing a fait du bruit cette semaine en annonçant la mise à disposition d’une licence gratuite de Zing pour les projets Open-Source.
Lorsque l’on souhaite avoir un temps de réactivité excellent sur une application Java, on se heurte bien souvent aux pauses du Garbage Collector qui interrompent complètement l’application, le fameux mode « Stop-the-World ». Sur une JVM standard, par exemple Hotspot, il faut alors en passer par un tuning poussé du Garbage Collector pour minimiser la fréquence ou la durée de ces pauses (choix du type de GC, ratios des différents espaces, seuils de déclenchement, …).
Ce n’est pourtant pas le chemin qu’a choisi Azul Systems. Depuis 2002, les équipes d’Azul sont allées jusqu’à créer leur propre hardware pour obtenir une JVM spécialisée dans les applications à très forte charge et ayant de gros besoins en mémoire. Le résultat ? La plateforme Vega et la JVM Zing, dont il est question ici.
Sous le capot, Zing gère la mémoire par le biais d’une table d’adressage. Chaque référence mémoire est, en réalité, une référence virtuelle qui est interceptée par Zing pour être traduite en une adresse physique. Par cette approche, la phase de compactage des garbage collectors classiques, habituellement longue, se résume à la mise à jour de l’adresse physique associée à une référence virtuelle dans la table d’adressage. Par ce biais (et bien d’autres), on en arrive à un garbage collector qui tourne en continu, et de manière complètement invisible, sans pause.
Les principaux points forts de Zing sont :
- Un garbage collector fonctionnant sans pause (aucune collection ne se fait sur le mode « Stop-the-world »)
- Supporte plusieurs dizaines de cores par instance
- Supporte jusqu’à 512Go de Heap par instance
Pour en savoir plus, vous pouvez consulter cet excellent article de nos confrères d’InfoQ : The Azul Garbage Collector, ou plus simplement l’essayer vous-même sur votre/vos projets Open-Source.