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"?

È stato utile?

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
scroll top