v/vlib/benchmark/README.md

1.4 KiB

Description:

benchmark provides an easy way to measure how fast a piece of code is, and produce a readable report about it.

Example usage of this module:

import benchmark

mut bmark := benchmark.new_benchmark()
// by default the benchmark will be verbose, i.e. it will include timing information
// if you want it to be silent, set bmark.verbose = false
for {
	bmark.step() // call this when you want to advance the benchmark.
	// The timing info in bmark.step_message will be measured starting from the last call to bmark.step
	// ....
	// bmark.fail() // call this if the step failed
	// bmark.step_message(('failed')
	bmark.ok() // call this when the step succeeded
	println(bmark.step_message('ok'))
}
bmark.stop()
// call when you want to finalize the benchmark
println(bmark.total_message('remarks about the benchmark'))

benchmark.start() and b.measure() are convenience methods, intended to be used in combination. Their goal is to make benchmarking of small snippets of code as short, easy to write, and then to read and analyze the results, as possible.

Example:

import time
import benchmark

mut b := benchmark.start()
// your code section 1 ...
time.sleep(1500 * time.millisecond)
b.measure('code_1')
// your code section 2 ...
time.sleep(500 * time.millisecond)
b.measure('code_2')

... which will produce on stdout something like this:

SPENT 1500.063 ms in code_1
SPENT  500.061 ms in code_2