2011-12-09 10 views
5

Ho visto (penso su SO) l'uso di una funzione simile a system.time che valuta l'ora di più funzioni contemporaneamente e sputa un'uscita. Non riesco a ricordare cosa fosse e una ricerca su Internet con i termini che sto usando non produce la risposta che voglio.Tester multifunzione alternativo a system.time

Qualcuno conosce il nome/posizione della funzione di cui sto parlando?

risposta

9

Si desidera il pacchetto rbenchmark e la sua funzione benchmark. (C'è anche il relativo e più specializzata pacchetto microbenchmark.)

Qui è l'inizio della sezione di esempio:

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

Questo è tutto. Grazie Dirk. –