多功能测试仪替代system.time

时间:2011-12-09 01:18:01

标签: r

我已经看到(我认为在SO上)使用类似于system.time的函数,它同时评估多个函数的时间并吐出一个输出。我不记得它是什么,用我正在使用的术语进行互联网搜索并没有产生我想要的响应。

任何人都知道我正在谈论的功能的名称/位置?

1 个答案:

答案 0 :(得分:9)

您需要rbenchmark包及其benchmark功能。 (还有相关且更专业的microbenchmark包。)

以下是示例部分的开头:

R> example(benchmark)

bnchmrR> # example 1
bnchmrR> # benchmark the allocation of one 10^6-element numeric vector,
bnchmrR> # replicated 100 times
bnchmrR> benchmark(1:10^6)
    test replications elapsed relative user.self sys.self user.child sys.child
1 1:10^6          100   0.286        1       0.2     0.08          0         0

bnchmrR> # Example 2
bnchmrR> # A call to benchmark with two named expressions and three replication
bnchmrR> # counts, output sorted by the replication counts and then by the 
bnchmrR> # elapsed time:
bnchmrR> means.rep = function(n, m)
bnchmr+    mean(replicate(n, rnorm(m)))

bnchmrR> means.pat = function(n, m)
bnchmr+    colMeans(array(rnorm(n*m), c(m, n)))

bnchmrR> benchmark(
bnchmr+    rep=means.rep(100, 100),
bnchmr+    pat=means.pat(100, 100),
bnchmr+    replications=10^(1:3),
bnchmr+    order=c('replications', 'elapsed'))
  test replications elapsed  relative user.self sys.self user.child sys.child
4  pat           10   0.011   1.00000      0.02        0          0         0
1  rep           10   0.015   1.36364      0.02        0          0         0
5  pat          100   0.107   9.72727      0.10        0          0         0
2  rep          100   0.155  14.09091      0.16        0          0         0
6  pat         1000   1.073  97.54545      1.07        0          0         0
3  rep         1000   1.553 141.18182      1.55        0          0         0