Сравнение производительности производительности контейнеров DI / IoC? - PullRequest
15 голосов
/ 15 марта 2011

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

Ответы [ 3 ]

43 голосов
/ 15 марта 2011

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

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

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

6 голосов
/ 24 февраля 2013

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

Вывод изarticle:

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

См. Также связанный https://stackoverflow.com/questions/1140730/net-di-containers-comparison/ вопрос.

6 голосов
/ 06 ноября 2012

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

...