Использование GetCurrentMethod в (предположительно) высокопроизводительном коде
Для целей ведения журнала некоторые методы в нашем приложении включают следующую строку:
Dim Log As ILog = GetLog(Reflection.MethodBase.GetCurrentMethod().DeclaringType)
У меня есть то, что можно охарактеризовать как иррациональный страх отражения, который я стараюсь держать под контролем. Однако подобные вызовы в методах, которые выполняются потенциально сто раз в секунду, меня беспокоят. Я не знаю так много, как я должен об отражении; но из краткого обзора документации мне кажется, что я мог бы заменить следующее:
Dim Log As ILog = GetLog(Me.GetType())
Мой вопрос в три раза:
Есть лиMe.GetType()
на самом деле вернуть то же самоеType
какGetCurrentMethod().DeclaringType
?Есть лиMe.GetType()
на самом деле делать что-нибудьиначе изGetCurrentMethod().DeclaringType
, или он делает то же самое под капотом?Должен ли я вообще об этом беспокоиться? Производительность имеет решающее значение в этом приложении; программаработает хорошо, но характер нашего бизнеса таков, что если мы сможем сбрить хотя бы несколько микросекунд здесь и там, это полезно.