【发布时间】:2014-07-19 11:47:04
【问题描述】:
我在使用 Swift 时遇到了一个小问题。
我正在将我的旧 C++ 代码移植到它,并且有几个地方我正在使用二维数组。
Swift 代码现在看起来像:
var m_blocksSave:Array<Array<Int>>
var columns = 32
var rows = 32
//fill array with 0
for column in 0..<columns {
var columnArray = Array<Int>()
for row in 0..<rows {
columnArray.append(0)//default is 0
}
m_blocksSave.append(columnArray)
}
然后我想检查这个数组,例如找到 1。事实上,任何对数组项目的访问都会造成巨大的减速。
例如,这段代码在我的机器上最多可能需要 4 秒(无论环境如何,我都可以将 iOS 与模拟器一起使用或将其作为原生 OS X 应用程序运行):
for var i=0;i<columns;i++
{
for var j=0;j<rows;j++
{
let intVariable = m_blocksSave[i][j]//this thing is slow
}
}
在这种情况下我能做什么?发生了什么?为什么这么慢?
【问题讨论】:
-
您为优化设置了哪个编译器选项?
-
真的需要时间!
-
我已经尝试了从 -ONone 到 -OFast 的所有选项。
-
今天尝试再次进行此测试,一切正常!所以这只是beta软件的限制,GM种子现在可以了。
标签: ios arrays multidimensional-array swift