Очень медленный анализ JSON с использованием EVReflection в зависимости от устройства iOS - PullRequest
0 голосов
/ 28 июня 2018

Я получаю объект json , содержащий массив объектов. Я готов проанализировать этот json , используя lib EVReflection.

Операция занимает некоторое время, поэтому я решил отслеживать шаги, которые предпринимаю, и понял, разбор json может занять до 20 секунд в зависимости от устройства.

Использование iPhone SE / iOS 11.4 занимает 4 секунды приблизительно.
При использовании iPhone 5 / iOS 10.3 занимает 20 секунд приблизительно.

Мне интересно, нормально ли такое изменение в зависимости от устройств / ОС.

Должен ли я просто использовать другую библиотеку или я могу что-нибудь сделать для ускорения операции?

Это код, который я использую:

func getParkings(update: Bool) -> Observable<[ParkingEvo]> {
        if let x = parkings, !update {
            return Observable.just(x)
        } else {
            print("STEP 1: Calling API for parkings \(NSDate())")
            return RxAlamofire.string(.get, PARKINGS_URL, parameters: getParameters(), headers: nil)
                .map { self.parseParkings(json: $0) }
                .do(onNext: { self.storeParkings($0) })
        }
    }

private func parseParkings(json: String) -> [ParkingEvo]{
        print("STEP 2: Proceed to parse json \(NSDate())")
        let parkingsDTO = ParkingsDTO(json: json)
        print("STEP 3: ParkingsDTO created \(NSDate())")

        return parkingsDTO.items
    }

Между STEP2 и STEP3 есть упомянутая задержка. Есть идеи, как это оптимизировать?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Для записи я использовал ObjectMapper вместо EVReflection и сэкономил 80% времени синтаксического анализа.

0 голосов
/ 29 июня 2018

Попробуйте SwiftyJSON для анализа, вместо этого это быстрая и простая проверка Взлом с помощью swift

Это проект 7, который вам нужно проверить

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