172 похожих чатов

Он же отдает results как lazy , не подгружая все

данные в память, вроде все ок.
Есть проблема - когда я делаю сортировку проиходит не memory leak , но что-то похожее на это:

вот функция:

let phones = realm.objects(PhoneExtModel.self).filter(NSPredicate(format: "isBlocked == %@ AND groupId == %d", NSNumber(booleanLiteral: isBlocked), (group.id)))

Вот она же с сортировкой:
let phones = realm.objects(PhoneExtModel.self).filter(NSPredicate(format: "isBlocked == %@ AND groupId == %d", NSNumber(booleanLiteral: isBlocked), (group.id))).sorted(byProperty: "number", ascending: true)

Если обратиться к результатам второй (отсортированной) функции, например так:
for i in 0 ..< phones.count {
print(phones[i].number) }
то происходит сильный скачек в памяти.
Почему так? я с экстеншном работаю и там этот скачек приводит к его закрытию. Если к результатам первой - то все ок. Но мне нужно чтоб была отсортировка.

1 ответов

7 просмотров

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

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Кто-нибудь знает, как считается нагрузка на цпу? И что такое вообще "нагрузка на цпу"? вот, например, есть у цпу какой-то clock, настроенный на 3 ГГц --- Что значит "нагрузка...
Toideng
15
Можно ли написать свою библиотеку "socket" на каком либо языке ассемблера с нуля не используя сишние библиотеки ? Или это самоубийство ?
123🪐
15
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
{!! $modx->runSnippet( 'multiTV',[ 'tvName'=>'slider-main1', 'docid'=>'[*id*]', 'tplConfig'=>'', 'display'=>'4', 'offset'=>'0', 'rows'=>'all', 'ra...
Роман С
4
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
PopOs or Linux Mint for a noob starter? Also do you have any articles on how to safely dual boot Windows 10 alongside it? I've heard there are a bunch problems that can occur...
Senator
14
Карта сайта