2011-12-09 10 views
5

Widziałem (myślę, że na SO) użycie funkcji podobnej do system.time, która ocenia czas wielu funkcji jednocześnie i wypluwa jedno wyjście. Nie pamiętam, co to było, a wyszukiwanie w Internecie z terminami, których używam, nie przynosi odpowiedzi, której pragnę.Wielofunkcyjny tester alternatywny do system.time

Ktoś zna nazwę/lokalizację funkcji, o której mówię?

Odpowiedz

9

Chcesz pakiet rbenchmark i jego benchmark funkcję. (Jest to również związane i bardziej wyspecjalizowane microbenchmark pakiet).

Oto początek sekcji przykład:

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 
+0

To wszystko. Dzięki, Dirk. –

Powiązane problemy