Я получаю объект 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 есть упомянутая задержка. Есть идеи, как это оптимизировать?
Заранее спасибо.