当前位置: 首页 > 知识库问答 >
问题:

如何对Swift代码执行进行基准测试?

益和雅
2023-03-14
let date_start = NSDate()

// Code to be executed 

println("\(-date_start.timeIntervalSinceNow)")

共有1个答案

潘高洁
2023-03-14

如果您只是想为一段代码提供一个独立的计时函数,我使用以下Swift帮助函数:

func printTimeElapsedWhenRunningCode(title:String, operation:()->()) {
    let startTime = CFAbsoluteTimeGetCurrent()
    operation()
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    print("Time elapsed for \(title): \(timeElapsed) s.")
}

func timeElapsedInSecondsWhenRunningCode(operation: ()->()) -> Double {
    let startTime = CFAbsoluteTimeGetCurrent()
    operation()
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    return Double(timeElapsed)
}

前者将注销给定代码段所需的时间,后者将其作为浮点返回。作为第一种变体的示例:

printTimeElapsedWhenRunningCode(title:"map()") {
    let resultArray1 = randoms.map { pow(sin(CGFloat($0)), 10.0) }
}

将注销如下内容:

 类似资料:
  • 我定期关注GitHub Rakudo存储库,查看Rakudo编译器发生了哪些变化。 我有时会看到提交,其中单个函数的速度提高了一定的百分比,时间如下图所示。 评估这一点的工作流是什么?我很想了解这一点,以便了解您的功能是如何执行的,并相应地进一步优化,从而为Rakudo的发展做出贡献。 我在这里阅读帮助。我谷歌了一下,但找不到此信息。我还通过命令行选项了解了MoarVM分析器,它会生成输出。要寻找

  • 问题内容: 对于大学,我进行字节码修改,并分析它们对Java程序性能的影响。因此,我需要Java程序(在生产中最好使用的Java程序)和适当的基准测试。例如,我已经有了HyperSQL,并通过基准程序PolePosition来衡量其性能。在没有JIT编译器的JVM上运行的Java程序。谢谢你的帮助! PS:我不能使用程序来对JVM或Java语言本身的性能进行基准测试(例如Wide Finder)。

  • 问题内容: 我是Java和junit的新手。我有以下要测试的代码。如果您能提出有关测试它的最佳方法的想法,将不胜感激。 基本上,以下代码与从集群中选出领导者有关。领导者在共享缓存上持有锁,并且如果领导者以某种方式释放了对缓存的锁定,则领导者的服务将恢复并处置。 我如何确保领导者/线程仍保持对缓存的锁定,并且在执行第一个线程时另一个线程无法恢复其服务? 问题答案: 作为测试框架的替代方法(或使用JU

  • 问题内容: 到目前为止,我已经看到了这些问题的答案2,)建议使用GCD的这样: 输出: 等一下 是一个变量,因此我可以轻松做到这一点: 输出: 所以,是没有用的,如果我们我可以改变的价值!转换成常量并非易事,因为它需要类型化。 那么我们应该放弃Swift吗?有没有一种安全的方法可以只执行一次代码? 问题答案: 由闭包初始化的静态属性是延迟运行的,最多只能运行一次,因此尽管被调用了两次,但它仅打印一

  • 问题内容: 我想问一下您首选的Java EE代码测试方法? 我发现只有三个项目,这些项目试图帮助在Java EE环境中编写单元测试: http://jakarta.apache.org/cactus/:上次发布时间:2009-01-18 http://www.junitee.org/:最新版本:2004-12-11 http://ejb3unit.sourceforge.net/:最新版本:200