DI контейнер это всего лишь мешок с фабриками, не более, автоматизация это уже другой аспект, либо она может быть либо нет (если честно для рядовых задач в Dagger нужно гораздо больше действий сделать, чем в моём DI решении), если нужны дополнительные параметры для фабрик или ещё что-то всегда можно это добавить, только если это действительно нужно в вашем проекте
1) это чтобы inline работал, можно сделать публичным неизменяемый вариант коллекции + норм доку написать и все дела
2) вообще фигня, в Kotlin полно inline функций, начиная с Android расширений и заканчивая коллекциями, не вижу в этом проблемы, чтобы на неё вообще обращать внимание, да и вообще Dagger генерит в 3 раза больше шаблонного кода, а Hilt в 6-10, так что сомнительно, но окэй
1) HashSet и HashMap создают минимум в два раза больше обьектов чем ScatterSet и ScatterMap, так как ключ и значение содержится в Map.Entry, а это дополнительный обьект
2) HashMap<String, Float> создаст еще и обертку над примитивным типом в отличии от objectFloatMapOf()
3) Отсюда следует, что при большом количестве коллекций, особенно если это примитивные, можно достигнуть сокращение памяти в десятки раз
P.S. Согласен, что надо бы сделать замеры, чтобы наверняка быть уверенным, возможно добавлю...
Если это классическая прилка в стиле "получить список данных из инета, пропустить его через всякие фильтры и тд, а затем отобразить" наверно особо нет, но для сложных алгоритмов где колоссальное количество коллекций есть: это сократит в десятки раз обьем используемой ОЗУ
хэш-таблица нужна для хранения фабрик зависимостей, чтобы динамически добавлять фабрики и получать экземпляры зависимостей когда это нужно
DI контейнер это всего лишь мешок с фабриками, не более, автоматизация это уже другой аспект, либо она может быть либо нет (если честно для рядовых задач в Dagger нужно гораздо больше действий сделать, чем в моём DI решении), если нужны дополнительные параметры для фабрик или ещё что-то всегда можно это добавить, только если это действительно нужно в вашем проекте
1) это чтобы inline работал, можно сделать публичным неизменяемый вариант коллекции + норм доку написать и все дела
2) вообще фигня, в Kotlin полно inline функций, начиная с Android расширений и заканчивая коллекциями, не вижу в этом проблемы, чтобы на неё вообще обращать внимание, да и вообще Dagger генерит в 3 раза больше шаблонного кода, а Hilt в 6-10, так что сомнительно, но окэй
Поправил, спасибо!
Насчет тестов хорошая идея, возможно сделаю...
Сравнение простое:
1) HashSet и HashMap создают минимум в два раза больше обьектов чем ScatterSet и ScatterMap, так как ключ и значение содержится в Map.Entry, а это дополнительный обьект
2) HashMap<String, Float> создаст еще и обертку над примитивным типом в отличии от objectFloatMapOf()
3) Отсюда следует, что при большом количестве коллекций, особенно если это примитивные, можно достигнуть сокращение памяти в десятки раз
P.S. Согласен, что надо бы сделать замеры, чтобы наверняка быть уверенным, возможно добавлю...
Если это классическая прилка в стиле "получить список данных из инета, пропустить его через всякие фильтры и тд, а затем отобразить" наверно особо нет, но для сложных алгоритмов где колоссальное количество коллекций есть: это сократит в десятки раз обьем используемой ОЗУ