Является ли время выполнения (времени выполнения) кода в классе, загружаемом посредством отражения идентичным тому же коду, когда класс создается с помощью нового ключевого слова?Производительность выполнения кода в классе, созданная с использованием отражения от класса «нормальный»
Я говорю «да». Но я обсуждал это с коллегой, который считает, что ориентированный на отражение код всегда медленнее.
Мое мнение состоит в том, что независимо от того, как класс был первоначально загружен/создан, производительность будет идентичной, потому что JIT-компилятор не заботится о том, как был загружен класс.
Правильно ли я? В любом случае, я был бы признателен за любые ссылки, которые могут помочь прояснить это.
(NB:.. Я не говорю о производительности создания класса, используя отражение против нового ключевого слова, я имею в виду фактический код в методах класса после того, как он был создан)
Marc, Мы используем Activator.CreateInstance() и передаем возвращаемый объект известному типу класса. С этого момента он всегда доступен через этот строго типизированный экземпляр. Мы работаем с C# 2 и скоро перейдем к C# 3/4. – Ash
Интересный вопрос о проверках безопасности. Это может быть то, о чем говорил мой коллега, хотя в то время они этого не говорили. – Ash
Я думаю, что ваш коллега вводит в заблуждение разницу между * загрузкой * что-то через отражение и * вызывая все * через отражение. Похоже, он должен хорошо работать в вашем сценарии с известным типом класса. –