Замедляют ли приложения внедрения зависимостей, такие как ButterKnife и Dagger?

Я собираюсь начать относительно большой проект, и мне было интересно

Каковы реальные преимущества использования этих сред внедрения зависимостей?

Увеличивает ли DI время загрузки приложения? Или предложить какое-либо значение производительности?

Документация Google противоречит использованию Robojuice из-за использования оперативной памяти. Является ли это общим для всех DI?

Интересно услышать мнение каждого.


person Shifty    schedule 24.01.2015    source источник
comment
это помогает? stackoverflow.com/questions/21522091/   -  person Phil H    schedule 12.02.2015


Ответы (1)


Я работаю в NYTimes, и создание экземпляров сотен управляемых объектов в двух областях с помощью Dagger 2 занимает менее 100 мс. Dagger помогает нам организовывать объекты и удалять множество шаблонов из действий или бизнес-объектов. Я бы порекомендовал его для любого размера приложения.

person FriendlyMikhail    schedule 13.10.2015
comment
Вы пробовали на устройствах Android KitKat? Инъекция Dagger 2 занимает слишком много времени на Android Kit Kat. - person Murat; 01.02.2017
comment
Пожалуйста, покажите мне статистику, подтверждающую ваши слова. Что такое слишком много времени? Насколько это время сопоставимо с внедрением зависимостей вручную? - person FriendlyMikhail; 01.02.2017
comment
После некоторого профилирования я заметил, что проблема не в кинжале. Мы используем NsdManager API для Android, инициализируем и предоставляем его с помощью кинжала. В Android 4.4 этот API содержит ошибки, и его инициализация занимает слишком много времени. Также вам необходимо перезагрузить устройство Android, если вы столкнулись с этой проблемой. Из-за этого инъекция кинжала занимает слишком много времени. - person Murat; 03.02.2017