Server agnostic application for testing servers latency.
You can check the video demonstration by downloading showcase.mp4 file
To run the application you need to:
- Run the server you want to benchmark. For example:
cargo run -p single_sync
- Compile the plugin of your choice and place it.
- Compile the
app
crate and run it (or use provided binary for windows - app.exe). Assuming we are in thebenchserv
folder:cargo run -p app
- Set the settings in the app and click button
Run
Plugins are responsible for creating connection, sending and receving data from the server they communicate with. Every connection is spawned onto new async task so plugins shouldn't do it themselves. Plugins must implement the interface
in order to be compatible. To measure latency that will be shown on the chart, plugins must use start
and stop
methods on the ConnectionTimer
object provided in the function arguments.
To implement the plugin you can use the template. You can check example implementations here:
Program checks for PLUGINS_PATH
environmental variable and if it doesn't exist it tries to read the plugins
directory in the same path that program runs.
There are two modes:
- Constant connections - program starts with specified amount of connections, spawning a new one when previous one ends. The X-axis of chart is time. Latency is averaged from all latencies across last second.
- Increasing connections - program starts with one connection spawning a new one every 10 requests (request = start/stop) or when the previous one ends. The X-axis of chart is number of connections. Latency is averaged across last 10 requests.