1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/benchmark
2020-08-07 16:44:49 +03:00
..
benchmark.v tests: parallelize compiler_errors_test.v using channels & threads 2020-08-07 16:44:49 +03:00
README.md benchmark: update the example in the README.md 2020-07-11 14:54:55 +03: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:

import time
import benchmark
mut b := benchmark.start()

// your code section 1 ...
time.sleep_ms(1500)
b.measure('code_1')

// your code section 2 ...
time.sleep_ms(500)
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