Недавно мне было предложено устранить некоторые проблемы с производительностью в приложении, созданном с помощью приложения Microsoft Composite UI Application, в частности, что он слишком долго загружался.
Это построено вокруг рамки интеграции зависимостей Microsoft ObjectBuilder, которая использует отражение/атрибуты для регистрации классов. Профилирование показало, что при запуске приложение тратило значительное количество времени на размышления, поскольку ObjectBuilder сканирует каждый тип в каждой загруженной сборке в нем для поиска вещей для регистрации.
Альтернативные рамки DI, похоже, также используют атрибуты, конфигурацию XML или чистый код.
Кажется, что никакая из других инфраструктур, основанных на атрибутах, не будет лучше, и я скептически отношусь к временам запуска, когда груды XML должны быть проанализированы и т.д.
Чистые основанные на коде основанные фреймворки кажутся, что они должны быть намного быстрее, но тогда они также намного менее гибкие, поэтому на самом деле не кажется, что есть четкий хороший выбор...
Это привело меня к поиску контрольных показателей контейнера DI, но единственное, что я смог найти, это следующее: http://www.codinginstinct.com/2008/04/ioc-container-benchmark-unity-windsor.html. < ш > Хотя это отличный ориентир, он определяет только то, как быстро вы можете создать 1 миллион объектов с помощью контейнера. Я не заинтересован в создании 1 миллиона объектов, я просто хочу, чтобы приложение запускалось как можно быстрее, поэтому я ищу любую информацию о расходах на запуск DI Container, будь то сообщения в блоге, анекдоты или даже что-то вроде просто как "здесь способ сделать ObjectBuilder быстрее".
Заранее спасибо