J'essaie de vérifier si une instruction while avec un bloc vide est optimisée par JIT, donc j'essaie d'exécuter mon code en mode release et d'afficher le code de la fenêtre Debug-> Windows-> Disassembly de Visual Studio. Cependant, je ne vois aucun changement par rapport au code compilé. J'ai essayé d'ajouter quelques déclarations que je compte être optimisé:Comment puis-je simuler du code optimisé JIT et voir le changement?
bool b = false;
if (b)
{
new Object();
}
mais je vois encore sur la fenêtre de démontage:
bool b = false;
if (b)
{
0524A8FF mov ecx,dword ptr [ebx+0Ch]
0524A902 push dword ptr ds:[33422A0h]
0524A908 mov edx,esi
0524A90A cmp dword ptr [ecx],ecx
0524A90C call 71DE3490
0524A911 test eax,eax
0524A913 je 0524A97C
0524A915 mov ecx,51DEAC4h
0524A91A call 002E30F4
0524A91F mov edi,eax
0524A921 lea edx,[edi+8]
0524A924 call 72D12410
new Object();
}
J'ai aussi essayé avec l'outil NGen qui est mentionné sur un related question, mais je continue à voir mon "code indésirable" (que je m'attendais à être optimisé), peut-être le problème est que je n'écris pas un "code indésirable" qui sera optimisé, si c'est le cas je serais heureux pour un meilleur exemple de code que le JIT devrait optimiser.
Comment puis-je ajouter un code trivial qui sera optimisé à coup sûr, puis vérifier dans cette fenêtre de désassemblage que le code que j'ai ajouté n'est pas là?
Assurez-vous de lire toutes les réponses dans la question en double, pas seulement celle acceptée – Evk
@Evk - voulez-vous dire de désélectionner "Supprimer l'optimisation JIT sur la charge du module" & "Activer juste mon code"? Je l'ai déjà fait. – BornToCode
Donc, aucune réponse à la question en double ne vous aide à résoudre le problème? – Evk