2011-01-10 3 views
1

Release IS NOT Debug: 64bit Optimizations and C# Method Inlining in Release Build Call StacksCLR Optimisation du langage. Langue compilateur VS compilateur JIT

Scott Haselman dit « la plupart des optimisations de code managé sont effectuées par le compilateur JIT plutôt que le compilateur de langage. » dans le poste supérieur. Je pense que 'JIT compile time' semble être 'Run Time', donc l'optimisation du temps de compilation JIT peut ralentir un programme. Mais il dit que c'est l'opposé. Savez-vous pourquoi l'optimisation CLR fonctionne comme ça?

+0

Je ne comprends pas vraiment la question. Demandez-vous si vous utilisez quelque chose comme NGEN pour compiler des images natives à l'avance, donc contourner le JITer peut en fait rendre votre application plus lente? Ou demandez-vous si le JITer fait son travail (optimisation) rend le programme plus lent? –

Répondre

0

Alors oui, c'est plus lent, et c'est aussi plus rapide. Une exécution initiale d'une fonction CLR sera plus lente qu'une routine native, car il faut du temps à un compilateur JIT pour compiler la fonction en code machine. Cependant, lors des exécutions suivantes, le code pourrait être plus rapide puisque le compilateur JIT en sait plus sur l'application qu'un compilateur AOT (à l'avance). Par exemple, un compilateur JIT peut activer des extensions SSE sur un processeur pris en charge. Par exemple, un compilateur JIT peut activer des extensions SSE sur un processeur pris en charge.

Questions connexes