2024-05-10 15:23:28 +02:00
|
|
|
def perform_something(&block)
|
|
|
|
start = Time.monotonic
|
|
|
|
yield
|
|
|
|
Time.monotonic - start
|
|
|
|
end
|
|
|
|
|
|
|
|
def perform_benchmark_average(ntimes : Int32, &block)
|
|
|
|
i = 1
|
|
|
|
sum = Time::Span.zero
|
|
|
|
while i <= ntimes
|
|
|
|
elapsed_time = perform_something &block
|
|
|
|
sum += elapsed_time
|
|
|
|
i += 1
|
|
|
|
end
|
|
|
|
sum / ntimes
|
|
|
|
end
|
2024-05-10 17:57:07 +02:00
|
|
|
|
|
|
|
def run_n_times(ntimes : Int32, &block)
|
|
|
|
i = 1
|
|
|
|
durations = Array(Float64).new
|
|
|
|
while i <= ntimes
|
|
|
|
elapsed_time = perform_something &block
|
|
|
|
durations << elapsed_time.total_nanoseconds
|
|
|
|
i += 1
|
|
|
|
end
|
|
|
|
durations
|
|
|
|
end
|
|
|
|
|
|
|
|
# TODO
|
|
|
|
def should_nb_files(path : String, expected_nb_files : UInt32)
|
|
|
|
raise Exception.new "should_nb_files: not implemented yet"
|
|
|
|
end
|
2024-05-26 19:03:37 +02:00
|
|
|
|
|
|
|
def long_operation(text)
|
|
|
|
STDOUT.write "#{text}\r".to_slice
|
|
|
|
yield
|
|
|
|
STDOUT.write " \r".to_slice
|
|
|
|
end
|