我有一个DispatchQueue.global().async
线程正在运行,这是很耗时的CoreData工作。Swift:Background DispatchQueue线程太慢
我知道这是不正确的做法。尽管如此,当我将所有这些繁重的计算工作移回到那里时,应用程序的速度却大大降低了一倍。
我假设这是因为异步任务没有获得分配给它的所有资源。有没有办法使它像主线一样快?
谢谢。
我有一个DispatchQueue.global().async
线程正在运行,这是很耗时的CoreData工作。Swift:Background DispatchQueue线程太慢
我知道这是不正确的做法。尽管如此,当我将所有这些繁重的计算工作移回到那里时,应用程序的速度却大大降低了一倍。
我假设这是因为异步任务没有获得分配给它的所有资源。有没有办法使它像主线一样快?
谢谢。
您可以试试DispatchQueue.global()中的“qos”可选参数。但是,如果您的任务完成后持续运行而不是退出,则最好只产生一个NSThread,而不是使用全局调度队列。
您能否解释一下我可以如何使用qos让它跑得更快?基于阅读文档,它看起来像设置qos到'.userInitiated'是你所指的? –
QoS越高,操作系统将花费的资源越多。这将使其更快,但它也会使电池更快地耗尽电池。 –
你可以发送你发送给队列的任务吗? –
这是很多很多的代码来搜索一个巨大的CoreData存储的引号,特定的单词。 –