2009-10-23 8 views

risposta

42

Questi sono gli stessi tempi che il comando Unix time o altri strumenti tipici di benchmarking avrebbe riferito:

  • utente: la quantità di tempo trascorso l'esecuzione di codice userspace (vale a dire: il codice),
  • sistema: la quantità di tempo trascorso in esecuzione il codice del kernel e
  • reale: l'importo "reale" di tempo impiegato per eseguire il codice (es sistema + utente + tempo trascorso in attesa di I/O, rete, disco, input dell'utente, ecc). Conosciuto anche come "tempo di wallclock".
+0

eccellente. Grazie. – Ethan

+0

@jorg sono la documentazione di Ruby per erronea Benchmark in quanto mostrano i tempi reali che sono molto più breve di tempi totali? Fonte: http://ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html – rscott

+2

@rscott: utente, il sistema e totale si riferiscono alla somma dei tempi tra tutti i core, mentre la vera e propria è solo il tempo totale letterale. Quindi se il codice è in esecuzione su un sistema multi-core, uno qualsiasi dei primi tre può superare quest'ultimo. – Sparhawk

-2

Si prega di verificare questo gioiello: https://github.com/igorkasyanchuk/benchmark_methods

Non più codice come questo:

t = Time.now 
user.calculate_report 
puts Time.now - t 

Ora si può fare:

benchmark :calculate_report # in class 

E basta chiamare il metodo

user.calculate_report 
Problemi correlati