Почему SwiftData @Query работает намного медленнее с большими наборами данных по сравнению с FetchDescriptor?IOS

Программируем под IOS
Anonymous
Почему SwiftData @Query работает намного медленнее с большими наборами данных по сравнению с FetchDescriptor?

Сообщение Anonymous »

Я проводил нагрузочное тестирование своего приложения, в котором перечислены некоторые задачи и, по сути, предварительно заполненная база данных с 1000 записями. Это сильно замедлило работу приложения, переключение вкладок стало медленным, и я объяснил это использованием

Код: Выделить всё

@Query var todos: [Todo]
Однако, если я заменю этот запрос вычисляемым свойством, использующим FetchDescriptor, т.е.

Код: Выделить всё

var todos: [Todo] {
var descriptor = FetchDescriptor()
do { return try DatabaseContainer.mainContext.fetch(descriptor) }
catch { return [] }
}
Внезапно все стало очень быстро (хотя наблюдаемая природа запроса теряется). Почему такая резкая разница в производительности?  – решение занимает около 2–3 секунд.

Код: Выделить всё

FetchDescriptor
— мгновенно
Это известное ограничение/ошибка в SwiftData?

Подробнее здесь: https://stackoverflow.com/questions/787 ... tchdescrip

Вернуться в «IOS»