iOS PFBatchFaultingArray-导致UITableView性能不佳(?)
在我的一个应用程序中,我将核心数据与NSFetchResultController一起使用。我正在寻找提高性能的方法,其中一个问题是我的UITableViewController。这有点夸张。我使用了InstrumentsiOS PFBatchFaultingArray-导致UITableView性能不佳(?),ios,objective-c,cocoa-touch,core-data,nsfetchedresultscontroller,Ios,Objective C,Cocoa Touch,Core Data,Nsfetchedresultscontroller,在我的一个应用程序中,我将核心数据与NSFetchResultController一起使用。我正在寻找提高性能的方法,其中一个问题是我的UITableViewController。这有点夸张。我使用了InstrumentsTime Profiler,我发现: 它似乎是通过以下方法调用的: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { [..
Time Profiler
,我发现:
它似乎是通过以下方法调用的:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
[...]
Post *cellPost = [self.fetchedResultsController objectAtIndexPath:indexPath];
[...]
}
我想知道是否有办法解决这个问题?或者可能是其他原因导致了性能问题?PFBatchFaultingArray是一种数组,您可以通过执行配置为(或任何数字>0)的提取操作返回该数组。它的行为类似于一个常规数组,但它是
-objectAtIndex:
方法,如果需要,它将实际从磁盘中获取一组fetchBatchSize
-ed对象。这可能会很慢,但它确实会降低内存使用率,因为只有fetchBatchSize
许多对象实际需要在内存中,而不是[array count]
许多对象
您可以尝试将获取请求配置为批大小为0,以禁用此功能。只要确保你能在内存中容纳你需要的所有对象
不过,优化应用程序的核心数据性能可能远不止这一个变化!本手册对技术有很好的概述
最后一段写得很好,答案也是:)谢谢,回答得好。我没有指定
fetchBatchSize
,核心数据是否有默认的提取大小?将其设置为0对性能没有多大影响,但现在我知道了PFBatchFaultingArray
至少是什么。我来看看视频。谢谢