用水晶语言减去两次



我正在为crystal编写一个小型基准测试,希望在没有任何其他库的情况下比较所花费的时间。

在像ruby这样的编程语言中,我会这样做:

t = Time.new
sleep 3
puts "Time: #{Time.new - t}s"

有没有一种方法可以获得当前的单调时钟时间,并将其从另一个时间中减去,以获得至少小数点后3位的精度?

操作系统提供的典型时间表示为基于";挂钟;时钟可能会发生变化同步。这可能导致时间线使其不适合精确测量经过的时间时间

作为替代方案,操作系统还提供单调时钟它的时间线没有明确的起点,但严格来说线性增加。

单调时钟应始终用于测量经过的时间

可以使用.monotonic:读取该时钟

t1 = Time.monotonic
# operation that takes 1 minute
t2 = Time.monotonic
t2 - t1 # => 1.minute (approximately)

块的执行时间可以使用.measure:来测量

elapsed_time = Time.measure do
  # operation that takes 20 milliseconds
end
elapsed_time # => 20.milliseconds (approximately)

--时间-github.com/crystal-lang/crystal

*强调矿。

所以你的例子基本上是一样的,只是用了Time.monotonic而不是Time.new

相关内容

  • 没有找到相关文章

最新更新