Быстрые данные ядра одновременно очень медленные - PullRequest
0 голосов
/ 17 января 2020

Я заканчиваю новую версию приложения 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( ...

Ответы [ 2 ]

0 голосов
/ 17 января 2020

CryptoSwift новейшая версия создает проблемы. Я использую swift 4.2 и для этой версии я должен использовать <= 0.15 CryptoSwift, а я использовал 1.3. С 0.15 все работает как надо, задержки 5-6 секунд нет. </p>

0 голосов
/ 17 января 2020

Если вы сначала тестируете на симуляторе или подключенном устройстве, вы должны удалить

print("j:" + j.description)

Когда вы загружаете большой объем данных, это сильно замедляет работу, потому что у вас есть l oop, я думаю, вы добавили этот оператор "print" для цели dev.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...