valence/performance_tests
Ryan Johnson 58f8197913
Client Cleanup (#159)
# Noteworthy Changes
- Simplified the `client` module and update procedure. Sending packets
is not deferred unless necessary.
- Client events are no longer buffered in `Client` before reaching the
user.
- Expanded `ClientEvent` to account for most packets.
- Most types containing custom `state` now implement `Deref` and
`DerefMut`. This means you don't have to write `.state` all over the
place. `Server` was excluded from this because it does not play well
with the borrow checker.
- Fixed bugs related to entity visibility.
- Client now correctly holds the semaphore permit from the initial
connection.
- Other miscellaneous API changes throughout the project. 

# Known Issues
- Inventory stuff is still incomplete. The inventory examples have been
temporarily disabled.
2022-11-29 03:37:32 -08:00
..
players Client Cleanup (#159) 2022-11-29 03:37:32 -08:00
README.md Redesign packet processing and improve Client update procedure. (#146) 2022-11-01 03:11:51 -07:00

Performance Tests

Run the server

cargo r -r -p players

In a separate terminal, start rust-mc-bot. This command should connect 1000 clients to the server.

# In the rust-mc-bot directory
cargo r -r -- 127.0.0.1:25565 1000

If the delta time is consistently >50ms, the server is running behind schedule.

Note:

Flamegraph

To start capturing a flamegraph, run the server like this:

# You can also try setting the `CARGO_PROFILE_RELEASE_DEBUG` environment variable to `true`.
cargo flamegraph -p players

Run rust-mc-bot as above, and then stop the server after a few seconds. Flamegraph will generate a flamegraph.svg in the current directory. You can then open that file in your internet browser of choice.