gpt4 book ai didi

ios - 字符串下标耗时长

转载 作者:行者123 更新时间:2023-11-28 08:24:22 26 4
gpt4 key购买 nike

我从 plist 文件中读取了一个字符串,该字符串有 105625 个字符,作为 325 x 325 网格节点信息,我使用循环来获取字符:

for x in 1...325{
for y in 1...325{
let char = string[string.index(string.startIndex, offsetBy: x * y)]
....
}
}

但是很慢,为什么?

最佳答案

你可以尝试通过这个方法使用一些线程来加快速度,如果不需要等待它完成,可以把整个事情放在一个普通的 dispatch_async 中

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) { 
//put all lengthy calculations here

dispatch_async(dispatch_get_main_queue()) {
//do any UI updates here
}
}

如果你真的想加快计算速度,你将不得不分解 for 循环以在不同线程上执行循环

    let group = dispatch_group_create();
let queue = dispatch_queue_create("processStuff", DISPATCH_QUEUE_CONCURRENT)

for x in 1...325{
dispatch_group_async(group,queue,{
for y in 1...325{
//do stuff
}
})
}

//dispatch_group_wait(group,DISPATCH_TIME_FOREVER); // use this if you want to wait here, blocking the main thread

dispatch_group_notify(group,dispatch_get_main_queue(),{ //use this if you want to be notified when all the groups have finished without blocking the main thread

})

警告:如果您在每个内部 for 循环中的计算依赖于其他 for 循环迭代的其他迭代或外部 for 循环的变量,您的计算可能会困惑,所以要小心。

关于ios - 字符串下标耗时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40481117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com