滚动时NSTableView非常迟钝

时间:2015-09-17 15:47:34

标签: macos performance swift core-data nstableview

在我的OS X应用程序中,使用Core Data我的表格视图在滚动时非常滞后,我在那里只有大约100多行...我使用Cocoa绑定NSArrayController在表格视图中显示我的数据。

我只有一个具有13个属性的实体,但仍然表视图/滚动视图非常滞后。

是否存在导致该行为的常见错误/错误编码?我滚动时的CPU使用率约为85%。

任何人都有任何想法,为什么会这样?我正在使用Xcode 7发布的版本。

更新:

仪器看起来像这样(我第一次使用它): enter image description here

更新2:我正在使用NSVisualEffectView并覆盖allowVibrancy以返回true,因此我获取表格视图的替代行颜色与我的另一个项目Github- Debter

一样

如果我为我的视图启用了核心动画层,它对滚动有很大的帮助,但是我的故事板开始做一些简单的东西,我不能再用任何与UI相关的东西了。

1 个答案:

答案 0 :(得分:1)

如果没有看到UITableView delegatedata source的代码,就很难知道确切的问题。

一些坏习惯是:

  • 从任何UITableViewDataSource方法或正在呈现UITableViewCell时从CoreData加载数据。
  • 在主线程上加载图像或在后台加载图像,而不将其缓存在本地存储上。
  • tableViewCellForIndexPath或其他数据源方法上执行复杂操作(如图像处理)。

可能有助于您找到问题的一些问题:

  • 您使用的是NSFetchedResultsController吗?如果你的数据集很长(虽然你没有提到),它可以提高性能。
  • 你检查了线程数吗?如果它太高,您可能希望使用NSOperationQueue来限制后台任务。