ios - Swift - 优化使用非常长的数组

标签 ios arrays swift optimization

我的代码中有一些地方看起来像这样:

var i = 0
for c in vertexStates[0] {
            //this operation is costy (encapsulates 4 linear interpolation inside)
            currentVertexes.append(vertexStates[1][i++].interpolateTo(c, alpha: factor))
}

而且我知道 vertexStates[index] 数组中肯定有超过 1000 个顶点(可能多达 3000 个)。优化(矢量化)此类操作的最佳实践是什么?应该弄清楚如何在某些线程中做到这一点?使用多线程的利润会超过开销吗?也许还有其他方法可以更快地执行此类操作?

我需要关于如何优化此类操作的通用方法(在我的例子中,它从另外两个数组生成数组,顺序对我来说很重要),无论 3000 是否算长。在此操作期间,我的 iPhone 6 Plus CPU 加载了 65%,因此我可以预测 4s 将显示非常糟糕的结果,即使我尚未对其进行测试。

最佳答案

100 不是很长。 300不是很长。 100,000 是我们可以开始争论某事是否很长的地方。

你有没有测量事情需要多长时间?您的代码可以运行的最慢设备是什么?如果您在 iOS 7 上运行,它在 iPhone 4 上的运行情况如何?如果你只在 iOS 8 或 9 上运行,它在 4s 或 iPad 2 上的运行情况如何?

第一步是测量。发布结果。

关于ios - Swift - 优化使用非常长的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33760787/

相关文章:

ios - 使用平移或其他手势时,如何将 UIimageView 保持在其他 uiimageview 之上

ios - 我通过协议(protocol)将数据从 UITableViewController 传递到 UIViewController,而不是 int 值,我得到的是 nil。为什么?

swift - NSDecimalNumber 到 UInt64 的转换问题

ios - 使用数组设置标签文本给出错误 "Cast from ' [String ]' to unrelated ' String' 总是失败

c - 如何为二维数组动态分配连续的内存块

swift - 肖像视频在 iOS 14 中不再保留纵横比

objective-c - 使用 NSCoding 编码/解码 double

iphone - KVO机制抛出错误?

arrays - 快速改变字符串数组(swift 2)

java - Java 中的 String[] 和 String... 有什么区别?