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