【问题标题】:Accuracy of comparison of runtime运行时比较的准确性
【发布时间】:2015-02-23 22:54:59
【问题描述】:

所有,我想知道以下是否可以准确评估这些函数的运行时间。如果我知道复制是否按顺序完成,我会对结果充满信心,但我不知道。谢谢。

system.time(replicate(8000,function1(4,5)))
system.time(replicate(8000,function2(4,5)))
system.time(replicate(8000,function3(4,5)))

【问题讨论】:

    标签: r performance replicate


    【解决方案1】:

    如果你查看replicate的源代码,你会看到是这样的:

    > replicate
    function (n, expr, simplify = "array") 
    sapply(integer(n), eval.parent(substitute(function(...) expr)), 
        simplify = simplify)
    <bytecode: 0x000000000b3b1ee8>
    <environment: namespace:base>
    

    因为它在其源代码中使用sapply,所以是的,它是连续的,因为sapply 实际上是用C 编写的for-loop。所以,是的,在这方面这是一个相当准确的评估。

    您也可以尝试microbenchmark 包,它可以更精确地计算运行时间。

    【讨论】:

      猜你喜欢
      • 2019-07-18
      • 2020-10-10
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多