2010-07-16 5 views
2

J'exécute un profil de performance pour une application C# sur une machine virtuelle. Les résultats montrent une énorme charge de "JIT Compiler". Quand je creuse plus loin, il montre quelque chose appelé "Class Loader" comme seule méthode appelée par le compilateur JIT.Le profil de performance montre une énorme charge de compilateur JIT

Que dois-je faire pour réduire la charge du "compilateur JIT"?

Répondre

2

JIT est le compilateur «juste à temps», cela compile essentiellement votre C# en code exécutable qui peut fonctionner sur le processeur actuel.

.Net est fourni avec un utilitaire appelé NGEN, qui crée une image native de votre code C#, qui n'a pas besoin d'être JIT'ted. Il y a des inconvénients à cela, cependant, une lecture de ceci:

http://codeidol.com/csharp/net-framework/Assemblies,-Loading,-and-Deployment/Native-Image-Generation-%28NGen%29/

Et enfin voici un lien vers l'information MS à propos NGEN:

http://msdn.microsoft.com/en-us/library/6t9t5wcf%28VS.80%29.aspx

+0

Cela signifie donc la charge JIT est le plus probable au démarrage seulement ?? ou la première fois qu'une fonction est exécutée? – bsobaid

+0

Le chargement JIT sera effectué au démarrage ou assemblé dynamiquement. Vous allez également le déclencher dans ASP.Net lors de l'utilisation de Control.LoadControl(). –

1

Vous pouvez essayer d'utiliser NGEN pour pré-assembler vos assemblages à des images natives. Cela permettra de réduire les frais généraux de Jitting la charge de l'application:

http://msdn.microsoft.com/en-us/library/6t9t5wcf(VS.80).aspx

Vous devez exécuter cet outil sur la machine où vos assemblages sont à savoir votre machine virtuelle.

Questions connexes