19 lines
886 B
Markdown
19 lines
886 B
Markdown
[← Utils](../README.md)
|
|
|
|
# Utils/MBen
|
|
|
|
Benchmarking helper for timing multiple code blocks/operations and persisting the results to a local SQLite database for later comparison.
|
|
|
|
## Main features
|
|
- Accumulate timing samples per operation/dataset in memory (`CMultiBenchmark::Add`).
|
|
- Flush all accumulated samples to a local SQLite database, creating the table if needed (`CMultiBenchmark::Finish`).
|
|
- Parse a previously generated `.log` file (with a `[MultiBen&` tagging convention) and flush its results to the database as well (`CMultiBenchmark::ParseLogFileTodayFlushDb`).
|
|
|
|
## Basic usage
|
|
```mql5
|
|
CMultiBenchmark::Add("parse_json", "dataset_1000", 1, elapsed_microseconds);
|
|
// ... repeat Add() for each iteration/operation ...
|
|
CMultiBenchmark::Finish("benchmarks.sqlite", TimeToString(TimeLocal(), TIME_DATE), "MyLib");
|
|
```
|
|
|
|
> Only the most representative methods are shown here.
|