gpt4 book ai didi

ios - HealthKit锻炼查询似乎真的很慢

转载 作者:行者123 更新时间:2023-12-01 15:50:57 25 4
gpt4 key购买 nike

我有一些代码正在从healthkit查询数据。我们从保健包以及最近的锻炼中获得各种样本和数量。在我的手机上(通常每天进行一次锻炼-尽管基础将事情存储为多次锻炼),锻炼查询大约需要8秒钟,但所有其他类型的查询都在不到一秒钟的时间内完成。

看起来,这个查询实际上是在进行线性扫描,对其他索引进行索引或其他操作。想知道是否有人遇到了这个问题或有什么想法?

NSPredicate *predicate = [HKQuery predicateForSamplesWithStartDate:[self dateByCalculatingWithNumberOfDays:-1 date:[NSDate date]]
endDate:[NSDate date]
options:HKQueryOptionStrictStartDate | HKQueryOptionStrictEndDate];

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:HKSampleSortIdentifierStartDate ascending:NO];

HKSampleQuery *query = [[HKSampleQuery alloc] initWithSampleType:[HKSampleType workoutType]
predicate:predicate
limit:0
sortDescriptors:@[sortDescriptor]
resultsHandler:^(HKSampleQuery *query, NSArray *results, NSError *error) {

self.workoutEntries = [[NSMutableArray alloc] initWithCapacity:results.count];
for (HKWorkout *workout in results) {
WorkoutObject *workoutObject = [WorkoutObject workoutObjectWithWorkout:workout];
[self.workoutEntries addObject:workoutObject];
}
[self fetchHeartRate];
}];
[self.healthStore executeQuery:query];

最佳答案

我做了一些孤立的锻炼查询,发现它们实际上非常快。

事实证明,我们HealthKit同步的前一个阶段似乎导致锻炼查询花费很长时间。

具体来说,我们每天查询约25个指标;导致提交约250条查询。该工作量全部处于异步块中,因此在提交锻炼查询后仍继续进行;看起来好像要花很长时间。

解决方案是每天不查询,而是连续多次查询一次,返回按天分组的结果,例如:Get total step count for every date in HealthKit

检修的一部分还包括更好地利用GCD组来管理整个任务的完成,并使用组输入和组离开功能跟踪各种未完成的 call 。这两个变化大大改善了情况。

关于ios - HealthKit锻炼查询似乎真的很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com