forked from nique_372/TSNStd
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.
|