Регистрация конфигурации Unity и влияние на производительность

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

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


person sudarsanyes    schedule 24.07.2014    source источник
comment
Если вы беспокоитесь о производительности за счет использования файла конфигурации, вы можете рассмотреть возможность использования регистрации на основе кода.   -  person Lukazoid    schedule 28.07.2014


Ответы (1)


Что касается...

Повлияет ли слишком большое количество операторов регистрации в конфигурации на время запуска моего приложения?

Короткий ответ: «это очень маловероятно».

Я не думаю, что использование контейнера Unity «внимательно» окажет негативное влияние на производительность вашего приложения. Причина, по которой я сказал «вдумчиво», заключается в более или менее крупномасштабных приложениях, где необходимо зарегистрировать и разрешить множество экземпляров с различными разрешениями. Например, вы можете не захотеть, чтобы контейнер содержал большое количество регистраций там, где вы хотите, чтобы они регистрировались динамически, или вы хотите, чтобы они были зарегистрирован, если контейнер не зарегистрирован и т. д..

Наличие большого количества регистраций сохраняет эти записи в памяти (например, в словаре) и не окажет большого влияния на производительность контейнера. Это просто справочная таблица, поэтому стратегии компоновщика Unity разрешат эти экземпляры на основе регистрации. Проблема в том, что вы разрешаете множество экземпляров и сохраняете память заранее, чего вы уже упомянули, избегая (см. Мой последний абзац..).

Это заблуждение, что Unity является более медленным DI-контейнером. У него богатый набор функций, он занимает достойное место среди других лучших контейнеров. Это не самый быстрый и не самый медленный либо.

Что касается «В качестве дополнительного примечания, большинство зарегистрированных типов создаются только после запуска на основе некоторых действий пользователя.». Я считаю, что это на самом деле хорошо, потому что вы создаете экземпляры только тогда, когда они нужны. Это выгодно с точки зрения потребления памяти - вы не будете хранить в памяти большое количество экземпляров.

person Spock    schedule 26.07.2014