Я заканчиваю новую версию приложения swift и замечаю, что загрузка из основных данных становится очень медленной. Тот же код в последней версии приложения работает отлично, но в новой он очень медленный. Код ниже и он на 100% такой же, как и в прошлой версии, но теперь я должен ждать кеша 5-6 секунд, и данные кеша также одинаковы при тестировании старой и новой версии!
Я уже потерял несколько дней на это, ожидая разрешения, чтобы я мог опубликовать sh обновленное приложение. Я напечатал индекс только для того, чтобы посмотреть, сколько потребуется времени, чтобы напечатать все 600 индексов, и в последней версии это максимум 1 сек c, в новой версии тот же код около 5-6 сек c!
Я просто нахожу, что ObjectTMP.init (... занимает время в новой версии, а в последней - нет. Я исследую его немного подробнее
Любая помощь с этим.
DispatchQueue.global(qos: .userInitiated).async {
if #available(iOS 10.0, *) {
// load
//We need to create a context from this container
let managedContext = self.appDelegate.persistentContainer.newBackgroundContext()
//Prepare the request of type NSFetchRequest for the entity
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Cache")
do {
let result = try managedContext.fetch(fetchRequest)
var j = 0
for data in result as! [NSManagedObject] {
...
hash[String(Int(data.value(forKey: "id") as! String)] = ObjectTMP.init( ...