2020-06-07 23:04:23 +02:00
|
|
|
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:
|
|
|
|
```v
|
2020-07-11 10:49:11 +02:00
|
|
|
import time
|
2020-06-07 23:04:23 +02:00
|
|
|
import benchmark
|
2020-07-11 10:49:11 +02:00
|
|
|
mut b := benchmark.start()
|
2020-06-07 23:04:23 +02:00
|
|
|
|
2020-07-11 10:49:11 +02:00
|
|
|
// your code section 1 ...
|
|
|
|
time.sleep_ms(1500)
|
2020-06-07 23:04:23 +02:00
|
|
|
b.measure('code_1')
|
|
|
|
|
2020-07-11 10:49:11 +02:00
|
|
|
// your code section 2 ...
|
|
|
|
time.sleep_ms(500)
|
2020-06-07 23:04:23 +02:00
|
|
|
b.measure('code_2')
|
|
|
|
```
|
|
|
|
... which will produce on stdout something like this:
|
2020-07-11 10:49:11 +02:00
|
|
|
```text
|
|
|
|
SPENT 1500.063 ms in code_1
|
|
|
|
SPENT 500.061 ms in code_2
|
|
|
|
```
|