我正在使用CloudKit下载CoreML(机器学习)模型。它们每个大约90MB。我有一个带有自定义“ ML”记录类型的公共数据库和默认区域。
我通过id查询此“ ML”,并且需要一分钟多的时间才能在完成模块上得到响应(应该是几秒钟)。我已经尝试了生产环境,设置服务质量以及使用不同的查询方式来获得相同的结果(非常慢)。
我想知道我是否缺少某些东西,或者是否还有其他方法可以更快地下载ML模型?
这是我当前的代码:
let arrayPredicate = NSPredicate(format: "id == %@", id)
let query = CKQuery(recordType: "ML", predicate: arrayPredicate)
let queryOperation = CKQueryOperation(query: query)
queryOperation.qualityOfService = .userInteractive
queryOperation.resultsLimit = 1
queryOperation.recordFetchedBlock = { record in
// This gets called +60 sec after
}
queryOperation.queryCompletionBlock = { record, error in
// Same here
}
publicDB.add(queryOperation)
答案 0 :(得分:2)
我切换到Firebase Storage进行测试,结果稍快一些,但没有快很多。 rmdaddy
和TommyBs
恰好符合他们的想法:CloudKit可能会慢一些,因为您需要查询记录,但是下载速度却差不多。
我的最终解决方案是使用Firebase Storage
,因为它很容易处理下载进度,然后将其显示在UI上供用户等待。