我正在使用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)

最佳答案

我切换到FireBase存储进行测试,结果稍微快一点,但速度不快。rmdaddyTommyBs是他们的想法:Cloudkit可能会慢一点,因为您需要查询一个记录,但下载速度也差不多。
我的最后一个解决方案是使用Firebase Storage,因为它很容易处理下载进度,然后在用户界面上显示出来供用户等待。

关于swift - iOS CloudKit在查询繁重的CKAsset时速度很慢(即使使用QoS),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55987145/

10-12 04:11