do performance benchmarking of LDK
Measure a variety of things such as:
- Storage size of LDK optimized binaries on each platform (Rust, Swift, Kotlin, JS, etc.). With and without no_std. If there are other optional components isolate and measure them too.
- Memory (RAM) size of LDK along a variety of dimensions. Minimum memory required for a base case (0 peers, 0 channels) and perhaps 1 peer 1 channel. Then marginal memory requirement per peer, per channel, per state update. Also gossip data vs. rapid gossip data vs. none (ie server side pathfinding).
- CPU performance for signing/doing a state update on send and receive. CPU performance for finding a path. etc.
Ideally could make this part of CI so we're automatically measuring and detecting improvements and regressions.
Related #1641, as reliable benchmark could be a source of information towards node operators in selecting the appropriate deployment for their needs.
Seem this is a duplicate of https://github.com/lightningdevkit/rust-lightning/issues/1537 ? But since this one is more specific, maybe close the older issue?
haha whoops. i guess i really want to see this happen :)
As we already have pretty decent benchmark coverage, I imagine the real work here is somehow start benchmarking memory usage and disk footprint.