interledger / interledger-rs

An easy-to-use, high-performance Interledger implementation written in Rust
http://interledger.rs
Other
198 stars 70 forks source link

Provide performance benchmarks #549

Open bstrie opened 4 years ago

bstrie commented 4 years ago

One of the primary goals of the Rust implementation is performance, but right now we're taking it on faith that the implementation achieves improved performance over the Node implementation. Even if we take as given that Rust is generally quite a bit faster than Javascript, we have no conception as to the magnitude of the difference between the two, which could be very important for people looking to replace a large fleet of Node connectors with a single Rust connector.

  1. Which metrics exactly do we want to benchmark? Ideas:
    1. Resident memory under load
    2. Resident memory at rest
    3. Maximum number of packets processed per second
      1. ...with balance tracking ("distrustful mode")
      2. ...without balance tracking ("trusting mode")
    4. Response latency percentiles under load
  2. How do we emulate conditions under load?
    1. Synthetic traffic? Observed testnet traffic?
    2. Asking connector runners what their typical traffic profile looks like?
  3. How would we capture these metrics, not only on the Rust connector but also on the Node connector?
koivunej commented 3 years ago

The amount of time spent sending money from one node to another was done in #663 for both single packet and multiple broken down on packets, with btp and http urls.