2013-10-21 30 views
14

Bir C# uygulaması oluştururken, 'ThePreStub' adında bir sistem (?) Yönteminde önemli miktarda CPU kullanımı görüyorum. Bu nedir?C# programında ThePreStub nedir?

+1

Lütfen ne denediğinizi ve ne bulduğunuzu ve bu bilgilerin neden yeterli olmadığını gösteriniz. "ThePreStub" için ilk birkaç web arama sonucu CLR'nin nasıl çalıştığını ** açıklıyor. – CodeCaster

+6

@CodeCaster - Yorumunuzu yaptıktan sonra bir deneme yaptım ve "ThePreStub" için * Google * 'ın çok fazla iyi bilgi aldığını öğrendim. Ne yazık ki, aslında Windows ile Windows VM'mi varsayılan sağlayıcı olarak aramayı denedim ve neredeyse hiçbir şey bulunamadı. Ders öğrenildi. – Eric

cevap

16

bakınız: çapraz montaj referanslar:

NGen derlenmiş kod Süreç tam zamanında derlenmiş bir nedenle kodu, temel daha düşüktür CLR Inside out - The Performance Benefits of NGen.. JIT derlenmiş kodunda, çapraz başvuru referansları, doğrudan aramalar veya atlamalar olarak uygulanabilir, çünkü bu referansların adreslerinin tam adresleri çalışma zamanında bilinir. Statik olarak derlenmiş kod için, , çapraz montaj referansları, pre-stub yöntemini kullanarak, çalışma zamanında doğru adresle doldurulmuş alan bir atlama yuvasından geçmelidir. Ön-yöntem yönteminde, diğer yöntemlerin yanı sıra, yerel görüntülerin, bu yöntem tarafından başvurulan derlemeleri, yöntem uygulanmadan önce belleğe yüklenmesini sağlar. Ön izleyicinin, yöntemin ilk çağrılmasının gerçekleştirilmesi için yalnızca 'a ihtiyacı vardır; Sonraki aramalar için kısa devre dışıdır. Ancak, her zaman yöntemi çağrıldığında, çapraz montaj referanslarının dolaylılık seviyesinden geçmesi gerekir. Bu, esas olarak, JIT derlenmiş kodla karşılaştırıldığında NGen tarafından derlenen kod için verimde 5-10 düşüşünü açıklayan şeydir.

İlgili konular