在案例中,NSFileManager CopyFileAtPath的速度与finder截然不同

时间:2016-04-28 12:33:06

标签: macos performance copy nsfilemanager

我正在使用NSFileManager将大量文件从一个驱动器复制到另一个驱动器。

在某些情况下,我看到用户说“应用程序无法使用,它以0.33 MB / s的速度在USB2连接上传输。当我只是拖放时,我需要10分钟”

我在后台线程上运行它 - 这可能是问题吗?

secondaryTask=dispatch_queue_create(      "com.myorg.myapp.task2",NULL);
dispatch_sync(secondaryTask,^{

    NSFileManager *manager;
    [manager copyItemAtPath:sourceFile toPath:filePath error:&error];

});

1 个答案:

答案 0 :(得分:1)

这似乎与OS X实际限制我的应用程序有关。有些用户实际上在日志中看到了这一点:

  

5/9/16 15:26:31.000内核[0]:进程MyApp [937]线程36146抓住了刻录CPU!它在180秒内使用了超过50%的CPU(实际最近使用率:91%)。 thread lifetime cpu usage 90.726617秒,(49.587139 user,41.139478 system)分类帐info:balance:90006865992 credit:90006865992 debit:0 limit:90000000000(50%)period:自上次补充以来的180000000000时间(ns):98013987431

所以......这是一个GCD问题......我直接用Apple提出了这个问题。