Her yerde JIT inlining'in nasıl olabileceğini anlamak isterim. JIT, kodumu bazı .NET yürütme zamanı derleme koduna satır içi olarak yazabilir mi?
benim koddaSystem.IO
montaj diyelim bazı işlevi çağırmak ve bu
System.IO
işlevi içinde çağrılan benim kodda uygulandığı bir işleve bir geri arama referansı geçmesi varsayalım. Benim görevimde
GetCallingAssembly()
çağrı var. Yani benim geri dönüşüme
System.IO
GetCallingAssembly()
çağrı özgün olarak benim kod içinde olduğunu ve "geçerli" yönteminin iç den denir amaçlandıysa
System.IO
şimdi benim kodun içinden çağrılır olduğunu söyleyecektir.
Böyle bir satır içi mümkünse veya .NET çalışma zamanı derlemeleri farklı bir şekilde işlenir mi, böylece kullanıcı kodunun .NET çalışma zamanı koduna JIT satırında girilmesine izin verilmez?
Bir temsilci geri çağrısı, geri çağrı yapan kişiye hiç nasıl karşılık vermez? Bunun mantıklı olduğundan emin değilim ... Anladığım kadarıyla, inlining, çağrılacak kodun ** kanıtlanabilir ** - statik bir çağrı veya sanal olmayan bir yönteme sanal çağrı olduğu senaryolarla sınırlıdır. –
@Mark Gravel: Tüm programda geri arama girişçisinin tek çağrısı olduğunu bilsem, neden olmasın? – sharptooth
I * şüpheli * bu, JIT'den çok daha fazla çaba sarfedeceğinden, özellikle yansıma/meta programlama mevcut olduğundan (yani: yeni arayanlar sonradan var olabilir) –