美文网首页
Swift reduce高阶函数与for循环运行效率比较

Swift reduce高阶函数与for循环运行效率比较

作者: jsone | 来源:发表于2021-12-02 13:57 被阅读0次

    1、打印代码执行时长的方法

    func calculateRunTime(_ closure: () -> Void) {
        let startTime = CFAbsoluteTimeGetCurrent()
        closure()
        let endTime = CFAbsoluteTimeGetCurrent()
        debugPrint("代码执行时长:%f 毫秒", (endTime - startTime) * 1000)
    }
    

    2、运行代码
    计算0~10000整数的和

    var nums = [Int]()
    for i in 0...10000 {
        nums.append(i)
    }
    calculateRunTime {
        var sum = 0
        for i in nums {
            sum += i
        }
        debugPrint("for循环:\(sum)")
    }
    calculateRunTime {
        let sum = nums.reduce(0) { $0 + $1 }
        debugPrint("reduce:\(sum)")
    }
    

    运行结果:

    "for循环:50005000"
    "代码执行时长:%f 毫秒" 2.7080774307250977
    "reduce:50005000"
    "代码执行时长:%f 毫秒" 2.714991569519043
    

    从运行结果可以看出,reduce高阶函数运行效率不for循环低一点

    相关文章

      网友评论

          本文标题:Swift reduce高阶函数与for循环运行效率比较

          本文链接:https://www.haomeiwen.com/subject/xpwntrtx.html