Почему 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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