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
canbenchreset 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
canbenchconfiguration 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?