Соображения производительности Unity с управляемым контейнером временем жизни. Существует ли задержка отражения при множественных вызовах Resolve <T>()? - PullRequest
0 голосов
/ 24 февраля 2010

Есть ли какие-либо соображения относительно производительности отражения при повторном вызове container.Resolve<T>(), когда разрешение уже установлено?

Я использую его в контроллере MVC для разрешения моей службы данных, поэтому она будет вызываться при каждом HTTP-запросе. Я храню экземпляр контейнера в состоянии Application, и я использую время жизни контейнера, чтобы оно поддерживало одноэлементный экземпляр моего разрешенного класса. Я предполагаю, что пока контейнер жив и создал новый экземпляр службы, ему не нужно будет использовать отражение при последующих вызовах для его разрешения.

Вместо этого я рассматриваю сохранение ссылки на разрешенный класс, если производительность Resolve<T>() является проблемой. Но с настройкой времени жизни синглтона кажется, что я буду дублировать что-то уже встроенное.

1 Ответ

3 голосов
/ 30 июня 2010

Даже не отвечая непосредственно на ваш вопрос, тесты контейнеров IoC Torkel Ödegaard предполагают, что вы не увидите значительного снижения производительности, связанного с разрешением зависимостей.

...