查找Select Ruby代码的运行时 问题

查找Select Ruby代码的运行时 问题,ruby,runtime,sleep,Ruby,Runtime,Sleep,大家好,我想在Ruby中查找代码块的运行时,但我不完全确定如何才能做到这一点。我想运行一些代码,然后输出运行这些代码所需的时间,因为我有一个超级庞大的程序,运行时变化很大。我想确保它总是有一个一致的运行时间(我可以通过睡眠几秒钟来实现),但这不是我的问题。我想知道实际运行时间有多长,这样程序就可以知道是需要放慢速度还是加快速度 我的想法 所以,我有一个想法,它可以如何工作。我从来没有在ruby中使用过时间,但我知道如何使用它。我可以有一个变量等于时间(以毫秒为单位),然后在代码块的末尾再做一个变

大家好,我想在Ruby中查找代码块的运行时,但我不完全确定如何才能做到这一点。我想运行一些代码,然后输出运行这些代码所需的时间,因为我有一个超级庞大的程序,运行时变化很大。我想确保它总是有一个一致的运行时间(我可以通过睡眠几秒钟来实现),但这不是我的问题。我想知道实际运行时间有多长,这样程序就可以知道是需要放慢速度还是加快速度

我的想法 所以,我有一个想法,它可以如何工作。我从来没有在ruby中使用过时间,但我知道如何使用它。我可以有一个
变量
等于时间(以毫秒为单位),然后在代码块的末尾再做一个
变量
,然后我只需减去它们,但我(1)从未使用过
时间
,(2)我不知道这是否是最好的方法

提前谢谢

Ruby有一个模块,用于计时事情需要多长时间。在开发过程中,我从来没有使用过这种方法,除了看看一个方法是否需要太长的时间才能运行,等等。我不确定这是否是“推荐”用于生产代码,或者是用于将事情保持在最低运行时之上(听起来你可能正在这样做),但请看一看,看看你的用例感觉如何

听起来你可能也对这个模块感兴趣(确保事情不会超过设定的时间)


如果您真的有一个用例来确保某件事情花费最少的时间,那么对代码进行计时(使用基准测试方法或时间或其他解决方案),然后
sleep
唯一想到的就是不同之处。

这很简单。看你的手表(
Time.now
)记住时间,运行代码,再看一次手表,减去

t0 = Time.now
# your block of code
puts Time.now - t0
[ 您想使用时间对象。(时间文档)

比如说,

  start = Time.now
 # code to time
 finish = Time.now

 diff = finish - start
diff将以秒为单位,作为一个浮点数

编辑:保留结束。 或者你可以使用 需要“基准”

 def foo
  time = Benchmark.measure {
   code to test
   }
将time.real或将其保存到日志中 结束 样本输出:

   2.2.3 :001 > foo
   5.230000   0.020000   5.250000 (  5.274806)
值为CPU时间、系统时间、总时间和实际运行时间。 [ 来源:Ruby文档