.NET : Mono 2.8 sera 27 % plus rapide… à la demande

Mono 2.8 sera plus flexible que son prédécesseur. Il sera ainsi possible de choisir entre deux moteurs de compilation du code et entre deux ramasses-miettes. Des options qui auront des conséquences en terme de rapidité de fonctionnement.

La prochaine version de Mono, le clone open source de la plate-forme .NET, offrira des options permettant d’utiliser le compilateur LLVM et le ramasse-miettes SGEN, en lieu et place du compilateur just-in-time classique et de Boehm. Si ces deux nouveaux modules ne sont pas encore finalisés, leur utilisation pourra apporter une hausse notable des performances dans des cas bien particuliers.

Le ramasse-miettes SGEN se veut plus rapide que Boehm. Sur une application extrême, où de nombreux objets sont créés avant d’être immédiatement détruits, l’utilisation de SGEN a permis d’assurer 18 % de requêtes supplémentaires, l’application consommant 24 % de mémoire en moins. C’est un plus appréciable, même si ce module est encore à l’état expérimental (il sera livré en version stable avec Mono 3.0). À réserver donc à des tâches lançant de nombreuses instances, comme les applications web.

Le compilateur de code classique pourra pour sa part céder la place à LLVM, qui rallongera nettement le temps de lancement de l’application, mais fournira un code beaucoup plus optimisé. Ainsi, le score au test SciMark grimpe de près de 27 % avec LLVM. Voilà qui pourrait se révéler fort utile pour les applications scientifiques ou financières, mais certainement pas pour des applications web ou desktop plus classiques, qui souffriraient trop du temps de lancement rallongé.

Avec Mono 2.6, il fallait jongler entre plusieurs installations pour disposer d’un tel choix. Mono 2.8 intégrera tous ces modules par défaut, permettant ainsi de basculer entre eux à la demande. Il ne tiendra donc qu’à vous de choisir les options permettant un fonctionnement optimal de vos applications.

Mono 2.8 devrait être livré entre la fin du mois d’août et le début du mois de septembre.