我正在开发一个处理大型浮点数组的应用程序,我非常失望地发现,当我在iPhone 5上运行时,Swift显然比
Python慢10倍.我想这不可能是真的,但我会有如果我没有在时间分析器中测试应用程序并认识到它可能不是我的算法或Swift的实现导致问题,我认为这是真的.
当为探查器构建应用程序时,它可以很好地执行:它会在不知不觉中花费很少的时间进行处理.但通常情况下,如果我在Xcode中点击运行按钮(播放符号)进行构建和运行,即使编译器设置为Fastest,也需要将近20秒才能完成. (代码在构建之间保持不变.)它的速度非常慢.
当我在MacBook Pro上的模拟器中构建和运行时,速度相当快,但即便如此,它比在我的小iPhone 5上构建和运行Time Profiler时要慢.
当我将以下测试代码放在AppDelegate的application()函数中时,构建之间的性能差异也存在,因此我认为这不是GUI /线程问题或任何问题.当在Objective-C(在我的设备上的一个单独的应用程序中)和我的Mac上的Python中实现时,相同的测试代码会快速运行.
var nums: [Float] = [] for var i = 0; i < 250000; i++ { nums.append(Float(i) * 0.001) }
(除非通过Time Profiler运行,否则大约需要20秒.)
以前有没有经历过这样的事情?如果你能帮我解决这个问题,我会非常高兴.