.NET : les performances de Mono boostées par LLVM

Grâce à LLVM, Mono, le clone ‘open source’ de .NET, voit ses performances grimper de plus de 26 %

Mono est un clone open source de la plate-forme .NET de Microsoft. Ce projet, mené par le dynamique Miguel de Icaza, gagne aujourd’hui en vitesse de traitement grâce à LLVM.

LLVM est une infrastructure permettant de compiler du code, y compris à la volée (JIT pour just-in-time). Elle est donc parfaitement adaptée aux machines virtuelles telles Java ou .NET. Cet outil est d’ores et déjà capable de transformer le code .NET ou Java en instructions exploitables par un processeur, par le biais du VMKit.

Un lien entre Mono et LLVM se dessine donc naturellement et c’est sans surprise que les deux projets se rejoignent aujourd’hui. Magie de l’open source, un patch très court permet à Mono d’exploiter le compilateur JIT de LLVM. Notez cependant qu’une version dédiée de Mono devra être utilisée. Espérons que la mouture officielle permettra prochainement (et directement) de choisir le générateur de code du projet LLVM ou celui intégré à Mono.

Selon Miguel de Icaza, LLVM fournit du code mieux optimisé que le moteur intégré à Mono. Le score au benchmark SciMark grimpe ainsi de 482 points à 610 points, soit une hausse des performances de plus de 26,5%. Le code généré devient presque aussi rapide que celui créé par un compilateur comme le Free Pascal ou la machine virtuelle Java de Sun.

Toutefois, ce gain a un coût : la compilation de code est plus longue et demande plus de mémoire. Ce surcroit de puissance ne sera donc pas adapté au code compilé régulièrement, par exemple celui des applications ASP.NET. Les scientifiques, par contre, vont se régaler.