Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何利用Swift(beta)阵列击败NSMutableArray性能?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Swift中,我正在尝试构建大量项目.在移动中在CoreData中创建元素时,这非常快.但是,在尝试保留这些项的索引时,创建数组Swift会对性能产生很大影响.下面的代码是NSMutableArray和Swift的Array之间的基准.在iOS模拟器中运行时,Swift阵列的速度要慢8倍.为什么这样,可以改进,还是应该改进,因为Apple发布了Xcode / Swift的新版本?

码:

var start: NSDate
var time: NSTimeInterval
var batch = 1000000
var rate: Double

var oArr = NSMutableArray(capacity: batch)
start = NSDate()
for i in 1..batch {
    oArr.addObject(i)
}
time = -start.timeIntervalSinceNow
rate = Double(batch) / Double(timE)
println("NSMutableArray \(batch) appends in \(timE) sec: \(ratE)/sec")

var sArr = Int[]()
start = NSDate()
for i in 1..batch {
    sArr += i
}
time = -start.timeIntervalSinceNow
rate = Double(batch) / Double(timE)
println("Array<Int>     \(batch) appends in \(timE) sec: \(ratE)/sec")

模拟器输出(beta 2)794%:

NSMutableArray 1000000 appends in 1.17320102453232 sec: 852368.843096295/sec
Array<Int>     1000000 appends in 9.31138801574707 sec: 107395.374170729/sec

模拟器中的输出(beta 3):

NSMutableArray 1000000 appends in 0.71416300535202 sec: 1400240.55083487/sec
Array<Int>     1000000 appends in 5.00839000940323 sec: 199664.961818569/sec

iPhone 5上的输出(iOS 7.1上的beta 3):

NSMutableArray 1000000 appends in 8.79256194829941 sec: 113732.494110367/sec
Array<Int>     1000000 appends in 55.6573320031166 sec: 17967.084730975/sec

解决方法

更新:

使用Xcode beta-3,在MACBook Pro 2 GHz Intel Core i7上使用控制台程序,我使用原始测试得到这些数字(由于较小的语法更改,也修复了语法):

调试(-O0):

NSMutableArray 1000000 appends in 0.782136023044586 sec: 1278549.9843203/sec
Array<Int>     1000000 appends in 5.56463801860809 sec: 179706.208500177/sec

发布(-Os):

NSMutableArray 1000000 appends in 0.14977502822876 sec: 6676680.43081684/sec
Array<Int>     1000000 appends in 0.124498963356018 sec: 8032195.3937913/sec

发布(-Ofast):

NSMutableArray 1000000 appends in 0.151567995548248 sec: 6597698.91646863/sec
Array<Int>     1000000 appends in 0.122538030147552 sec: 8160731.80543105/sec

大佬总结

以上是大佬教程为你收集整理的如何利用Swift(beta)阵列击败NSMutableArray性能?全部内容,希望文章能够帮你解决如何利用Swift(beta)阵列击败NSMutableArray性能?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。