Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos NSTableView在滚动时非常滞后_Macos_Performance_Swift_Core Data_Nstableview - Fatal编程技术网

Macos NSTableView在滚动时非常滞后

Macos NSTableView在滚动时非常滞后,macos,performance,swift,core-data,nstableview,Macos,Performance,Swift,Core Data,Nstableview,在我的OS X应用程序中,它使用核心数据我的表视图在滚动时非常滞后,我在那里只有大约100多行……我使用NSArrayController的Cocoa绑定在表视图中显示我的数据 我只有一个具有13个属性的实体,但表视图/滚动视图仍然非常滞后 是否存在一些常见的错误/错误编码是什么导致了这种行为?当我滚动时,我的CPU使用率约为85% 有人知道为什么吗?我使用的是Xcode 7发布版 更新: 仪器如下所示(我第一次使用): 更新2:我使用NSVisualEffectView并覆盖AllowsVi

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

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

是否存在一些常见的错误/错误编码是什么导致了这种行为?当我滚动时,我的CPU使用率约为85%

有人知道为什么吗?我使用的是Xcode 7发布版

更新:

仪器如下所示(我第一次使用):

更新2:我使用NSVisualEffectView并覆盖AllowsVibrance以返回true,因此我得到的表视图的替代行颜色与我的另一个项目中的相同


如果我为我的视图启用核心动画层,它对滚动有很大帮助,但是我的故事板开始做一些磨损的事情,我无法再很好地处理任何与UI相关的事情。

如果看不到您的
UITableView
代理
数据源的代码,就很难知道确切的问题

一些坏习惯是:

  • 从任何
    UITableViewDataSource
    方法或呈现
    UITableViewCell
    时从CoreData加载数据
  • 在主线程上加载图像或在后台加载图像,而不在本地存储上缓存它们
  • tableViewCellForIndexPath
    或其他数据源方法上执行复杂操作(如图像处理)
一些可能有助于您找到问题的问题:

  • 您是否正在使用NSFetchedResultsController
?如果您的数据集很长(尽管您提到的不是),则可以提高性能
  • 你检查过线程的数量了吗?如果太高,您可能需要使用
    NSOperationQueue
    来限制后台任务

  • 使用Xcode的Instruments工具,您可以分析正在运行的应用程序,查看它在哪里花费时间。我更新了答案并发布了Instruments的屏幕截图……您能从中找出什么吗?您使用的是CALayers,您的Mac机型是什么15“Macbook Pro Retina,2013年初如果您正在进行核心数据提取以填充表格,这可能就是问题所在。是这样吗?尝试使用instruments的核心数据工具。我的应用程序是针对OS X的,当view controller加载并存储数据到我的阵列并从那里填充我的表视图时,我会发出一个fetchrequest。当我不使用NSVisualEffectView时,我的滚动很好,一切正常,但visualeffectview会导致问题。为我所有的
    UIKit
    类致歉:)。您正在对每个表视图行执行视觉效果吗?也许一个好主意是将整个表视图嵌入到视觉效果视图中,然后在行上使用不透明度的平面颜色来创建斑马线效果。我在整个视图中都有视觉效果。现在,我已经把它去掉了,因为这是一次滞后的经历。