Modulo Ruby Benchmark: significati di "utente", "sistema" e "reale"?
-
06-07-2019 - |
Domanda
Sperimentando con il modulo Benchmark di Ruby ...
>> Benchmark.bm(7) { |b| b.report('Report:') { s = '' ; 10000.times { s += 'a' } } }
user system total real
Report: 0.150000 0.010000 0.160000 ( 0.156361)
Quali sono i significati di "utente", "sistema", e "reale"?
Soluzione
Sono le stesse volte in cui il comando Unix time
o altri strumenti di benchmarking tipici segnalano:
- utente : la quantità di tempo impiegata per eseguire il codice spazio utente (ovvero: il tuo codice),
- sistema : la quantità di tempo impiegata per eseguire il codice del kernel e
- reale : il " reale " il tempo impiegato per eseguire il codice (ad es. sistema + utente + tempo impiegato in attesa di I / O, rete, disco, input utente, ecc.). Conosciuto anche come "tempo di orologio a muro".
Altri suggerimenti
Controlla questa gemma: https://github.com/igorkasyanchuk/benchmark_methods
Non più codice come questo:
t = Time.now
user.calculate_report
puts Time.now - t
Ora puoi fare:
benchmark :calculate_report # in class
E chiama semplicemente il tuo metodo
user.calculate_report
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow