Сравнительная таблица производительности измерительного оборудования для сопоставлений с производительностью/производительностью DI/IoC?

Я нашел результаты теста в 2008 году для тестирования производительности некоторых из лучших контейнеров .NET DI/IoC здесь. Но я не смог найти никаких обновленных результатов. Существуют ли какие-то тесты, которые сравнивают некоторые из больших контейнеров IoC (StructureMap, Unity, Ninject, Autofac, Castle Windsor и т.д.)?

Ответ 1

Я бы не рекомендовал использовать тесты производительности, чтобы выбрать контейнер IoC. Есть много, гораздо более важных факторов, таких как набор функций, дорожная карта разработки и ремонтопригодность и т.д.

Поймите, что контрольный показатель, который вы цитируете, в худшем случае показывает только 3-4-кратное различие в скорости более 1 миллиона вызовов. В сценарии "реального мира" DI/IoC используется для подключения зависимостей и будет иметь минимальное влияние на общую производительность приложения, так как эта фаза строительства - невероятно небольшая часть вашего общего времени выполнения. Выбор "высокой производительности" и "низкопроизводительного" контейнера IoC, вероятно, не окажет заметного влияния на воспринимаемую вами производительность.

В маловероятном сценарии, что производительность действительно важна для вашего конкретного случая использования, эталон вряд ли будет действительным показателем того, как производительность контейнера IoC повлияет на вас, поскольку эталонные показатели, как правило, искажаются по отношению к определенному набору проблем. Я бы настоятельно рекомендовал делать ваши собственные профилирования и измерения, если вы действительно считаете, что это серьезная проблема.

Ответ 2

В моем случае скорость контейнера IoC была важным фактором. У меня было приложение, которое выполняет множество инъекций и обнаружило, что Ninject значительно замедляет приложение. Вывод IoC полностью решил проблемы с производительностью. Я буду изучать другие решения.

Ответ 3

IoC Container Benchmark - Сравнение производительности имеет таблицы сравнения производительности и функций для более 20 продуктов, и она обновлена ​​(последнее обновление 21.12.2017)

Заключение из статьи:

Особенно Простой инжектор кажется хорошим выбором. Это очень быстро, имеет хорошую документацию, а также поддерживает расширенные сценарии, такие как перехват и общие декораторы.

См. также соответствующий https://stackoverflow.com/info/1140730/net-di-containers-comparison/ вопрос.