ios - 使用多核解析 JSON
问题描述
iOS 设备正在变得越来越好,拥有更多内核,但我们在解析 JSON 时如何从中受益?
目前,我正在使用 JSONDecoder() 进行 JSON 解析。有没有办法让我们更快地做到这一点?也许使用多线程解析部分等。
任何提示/指针将不胜感激。
import Foundation
let filePath = Bundle.main.path(forResource: "json", ofType: "json")
struct Vehicle: Codable {
private let color: String
private let tires: [Tire]
private let number: String
}
struct Tire: Codable {
private let company: String
private let isNew: Bool
}
func parseData(_ data: Data) {
let decoder = JSONDecoder()
try? decoder.decode([Vehicle].self, from: data)
}
func modifiedParsing(_ data: Data) {
}
let data = try String(contentsOfFile: filePath!).data(using: .utf8)
let date = Date()
let start = date.timeIntervalSince1970
//parseData(data!)
let end = Date().timeIntervalSince1970
print("Time Taken \(end-start)")
/*
Initial Times: [3.728722095489502, 3.5913820266723633, 3.5568389892578125, 3.534559965133667, 3.506725311279297]
After Changes
*/
解决方案
我想让 JSON 解析更快。对于正在寻找好的解决方案的任何人,请参考:https ://github.com/bwhiteley/JSONShootout
元帅比可编码更快。
推荐阅读
- oracle - 如何在 Talend 中将 varchar 数据类型转换为 Cassandra Map(键值对)转换
- css - 如何在 RSCSS 中选择什么是组件和什么是元素?
- google-cloud-platform - GCP Notebook AI -- 具有写入权限的 SSH?
- java - 如何在android studio中显示一次性吐司消息
- javascript - 如何检查一个字符串是否仅包含数组项?
- docker - Docker + Nginx + 几个带有反向代理的站点;目录绑定问题
- julia - 如何从 Julia 中的文件名中提取扩展名?
- git - Git命令在init容器中不起作用
- python - 将具有选定列的数据框转换为具有指标值的值列
- python - 解析存储为 XML 的足球统计数据