Derlemelerimden (ILDasm yoluyla) IL'nin bazi IL'sini tiriyordum ve tüm yöntemlerimin yönergesiyle basladigini fark ettim.Oluşturulan IL kodu neden bir Nop ile başlıyor?
Bunun nedenini bilen var mı?
Derlemelerimden (ILDasm yoluyla) IL'nin bazi IL'sini tiriyordum ve tüm yöntemlerimin yönergesiyle basladigini fark ettim.Oluşturulan IL kodu neden bir Nop ile başlıyor?
Bunun nedenini bilen var mı?
Montaj, hata ayıklama modunda derlenmiştir. Nop
talimatları hiçbir şey yapmaz (yani yan etkisi yoktur), ancak bir kesme noktası yerleştirmek için uygun bir talimat olarak hareket eder.
İpucu
hata ayıklama amacıyla ek bir kesme noktası için bir yere ihtiyacım varsa, boş bir pantolon askısı ekleyerek ayıklama yapı içinde bir Nop
dahil zorlayabilir, örneğin
_grid.PreviewMouseRightButtonDown += (sender, e) =>
{
_isRightMouseDown = true;
RowColumnIndex cell = _grid.PointToCellRowColumnIndex(e);
{} //<------ Adding a Nop allows a breakpoint here.
};
Çevrimleri boşa mı harcıyorlar? – YellPika
@YellPika Evet öyle. Hiçbir şey yapmadan döngüleri boşa harcıyorlar. Hata ayıklama işlemini daha yavaş yapan şeylerden biridir. –
JIT derleyicisi, bunları yerel komut akışından optimize etmelidir. – devstuff