Qual è la differenza tra MethodImplAttribute con l'opzione MethodImplOptions.AggressiveInlining
e TargetedPatchingOptOut
?MethodImplOptions.AggressiveInlining vs TargetedPatchingOptOut
Quando ho cercato su Google, tutti sembrano dire che entrambi (potrebbero) incorporare il metodo ma senza dare la differenza.
TargetedPatchingOptOut è abbastanza ben spiegato qui: http://stackoverflow.com/questions/6109745 La parte cruciale sembra essere che l'inlining viene eseguito oltre i limiti dell'assieme, cosa che non viene eseguita di default. Mi aspetto che AggressiveInlining sia un suggerimento per allineare il metodo, ma diversamente da TargetedPatchingOptOut non consente l'inlining attraverso i limiti dell'assembly. – dtb
Dopo aver letto il tuo commento ho fatto un po 'più di ricerca e ho trovato questo [collegamento] (http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/20/aggressive-inlining-in- la-clr-4-5-jit.aspx). La mia comprensione di questo post è che puoi applicare entrambi gli attributi AggressiveInlining per rimuovere il limite di dimensioni del metodo, mentre come hai detto tu TargetedPatchingOptOut consentirà l'inlining attraverso i limiti dell'assembly. È corretto? –
Ecco come lo interpreterei anch'io. – dtb