-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Profiling and optimisation are tangentially mentioned towards the end of issue #25, but better tooling/process is needed to maximise the performance of this firmware on different fronts:
- Choose overall and per-task heap size allocation based on throughput.
- Choose adequate application buffer sizes for the different interfaces and subsystems.
- Choose best fitting priorities for the different tasks, both plain embassy tasks and interrupt-driven ones.
- Optimise the build for size on boards that do not have big(ger) flash sizes. Same for RAM size:
- Run
cargo tree,cargo bloatand i.e harmonizeed25519-compactinstead of bigger counterparts, use lightweight crypto primitives and other basic "util" crates across sunset and ssh-stamp. - Add CI/CD instrumentation to track all of the above over time, avoiding regressions.
- Implement SIMD versions of the cryptographic/hashing primitives?
- Profile hot spots, cryptographic primitives, etc...
Those performance engineering techniques should be appropriatedly documented (preferably with examples) and ideally implemented in CI to monitor regressions.
Metadata
Metadata
Assignees
Labels
No labels