82 votes

Combien de temps une opération en millisecondes en Ruby?

Je suis désireux de savoir combien de millisecondes une fonction particulière utilise. Alors, j'ai cherché haut et bas, mais ne pouvait pas trouver une façon de passer le temps en Ruby avec précision à la milliseconde.

Comment faites-vous cela? Dans la plupart des langages de programmation, c'est juste quelque chose comme

start = now.milliseconds
myfunction()
end = now.milliseconds
time = end - start

92voto

ezpz Points 5273

Vous pouvez utiliser ruby Time classe. Par exemple:

t1 = Time.now
# processing...
t2 = Time.now
delta = t2 - t1

Maintenant, delta est float objet et vous pouvez obtenir à grain fin, à la suite de la classe.

63voto

Semyon Perepelitsa Points 7592

Vous pouvez également utiliser le microphone de Référence.la fonction de mesure:

require "benchmark"
puts(Benchmark.measure { sleep 0.5 })

Impressions:

0.000000   0.000000   0.000000 (  0.501134)

14voto

sepp2k Points 157757

Vous devriez jeter un oeil à l'indice de référence du module pour effectuer des benchmarks. Cependant, comme un moyen rapide et sale timing méthode que vous pouvez utiliser quelque chose comme ceci:

def time
  now = Time.now.to_f
  yield
  endd = Time.now.to_f
  endd - now
end

Notez l'utilisation de l' Time.now.to_f, qui, contrairement à to_i, de ne pas tronquer de secondes.

1voto

sutch Points 649

Temps D'Utilisation.maintenant.to_f

1voto

Barry Points 569

L' absolute_time gem est une baisse-dans le remplacement pour indice de Référence, mais en utilisant les instructions à être beaucoup plus précis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X