2012-09-03 14 views
6

"Suppress JIT optimization on module load" hata ayıklama seçeneğinin etkisi nedir?"Modül yükü üzerinde JIT optimizasyonunu kaldır" hata ayıklama seçeneğinin etkisi nedir?

Yakın zaman önce bir COM bileşeni kullanan bir uygulamada hata ayıklamayı başarabilmek için kapatmak zorunda kaldım.

Kapatarak ne riski var?

+0

olası yinelemesi [Modül yükünde JIT optimizasyonunu iptal et (yalnızca yönetilen)] (http://stackoverflow.com/questions/9564739/suppress-jit-optimization-on-module-load-managed-only) – nawfal

cevap

11

JIT optimizasyonunun bastırılması, optimize edilmemiş kodun hata ayıklaması anlamına gelir. Kod biraz daha yavaş çalışır, çünkü optimize edilmemiştir, ancak hata ayıklama deneyiminiz çok daha kapsamlıdır. En iyileştirilmiş kod hata ayıklama daha zordur ve yalnızca optimize edilmiş kodda meydana gelen ancak optimize edilmemiş sürümde yeniden üretilemeyen bir hatayla karşılaşırsanız önerilir.

Modül yüklemesinde JIT optimizasyonunu kaldır seçeneğini temizlerseniz, optimize edilmiş JIT kodunu ayıklayabilirsiniz, ancak en iyileştirilmiş kod kaynak kodla eşleşmediğinden hata ayıklama yeteneğiniz sınırlı olabilir. Sonuç olarak, Locals and Autos penceresi gibi hata ayıklayıcı pencereler, optimize edilmemiş kod hatalarını ayıklamakta oldukları kadar fazla bilgi göstermeyebilir.

+0

Bu tüm metin referansı: http://msdn.microsoft.com/en-us/library/ms241594.aspx –

2

Bu, JIT kodunun hata ayıklama için optimize edilmeyeceği anlamına gelir. Örneğin: Bu kod gerekli değildir bu kod notUsed değişkeninde

private int Add(int x, int y) 
    { 
     int notUsed = 2; 
     return x + y; 
    } 

optimizasyon tarafından JIT kodu fro dışında tutulacaktır. En iyileştirilmiş kodu hata ayıklamaya başlarsanız, yazdığınız kodlara benzemez (ancak aynısını yapar). Optimizasyonun başka bir örneği de satır içi yöntemlerdir.

İlgili konular