Uso de GetCurrentMethod en código (supuestamente) de alto rendimiento

Para fines de registro, algunos métodos en nuestra aplicación incluyen la siguiente línea:

Dim Log As ILog = GetLog(Reflection.MethodBase.GetCurrentMethod().DeclaringType)

Tengo lo que podría describirse como un miedo irracional a la reflexión, que trato de mantener bajo control. Sin embargo, las llamadas como esta en métodos que se ejecutan potencialmente cien veces por segundo me preocupan. No sé tanto como debería sobre la reflexión; pero al examinar brevemente la documentación, me parece que podría reemplazar lo siguiente con:

Dim Log As ILog = GetLog(Me.GetType())

Mi pregunta es triple:

HaceMe.GetType() en realidad devuelve lo mismoType comoGetCurrentMethod().DeclaringType?HaceMe.GetType() en realidad hacer cualquier cosadiferentemente desdeGetCurrentMethod().DeclaringType¿O está haciendo lo mismo bajo el capó?¿No debería siquiera estar preocupado por esto? El rendimiento es crítico en esta aplicación; el programacarreras Está bien, pero la naturaleza de nuestro negocio es tal que si podemos reducir incluso unos pocos microsegundos aquí y allá, eso es útil.

Respuestas a la pregunta(3)

Su respuesta a la pregunta