Hi everyone,
I’m currently using canbench
to benchmark my ICP canisters and have a few questions that I couldn’t find clear answers to:
1. State Persistence
If the canister’s state persists between the execution of different benchmark functions, then the data stored by one function (like store_user
) should be accessible by another (like get_user
).
- Is this typically the case?
- Does
canbench
reset the canister state between benchmarks, or does it run them sequentially with the same state?
2. Caller Configuration
When I call a main function from benchmark function:
- Who is the default caller (i.e., the principal ID)?
- Is there a way to configure or set a custom caller in the benchmark context, either through code or a
canbench
configuration option?
3. Benchmark Result Configuration
By default, canbench
only shows three results:
- instructions
- heap_increase
- stable_memory_increase
Is there any way to configure canbench
to display additional metrics such as execution time, cycles used, or other performance details?
- Are there any flags or config files I can modify to get more comprehensive results?