Bandwidth usage analysis
I wanted to analyze my application's bandwidth usage more thoroughly to see if I'm sending unnecessary data or how I can optimize my application's data usage as a whole. I've put the Nomcore modules into the Unity profiler, but I only have the general amount of data sent without any further details.
It would also be useful to know the best practices for optimizing internet bandwidth, I didn't find this in Nomcore's documentation.
4 Replies
Hi @gubebra. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Normcore is designed to be as bandwidth and CPU efficient as possible. For instance, Normcore model updates are not more expensive than RPCs, they are designed to be as bandwidth and CPU efficient as possible source (https://normcore.io/documentation/room/common-questions#are-model-change-events-more-expensive-than-rpcs).
Normcore also uses WebRTC which implements congestion control. This means that Normcore can automatically adjust the rate at which updates are sent to the server to utilize the maximum bandwidth available while still keeping updates smooth for users with poor connections source (https://normcore.io/documentation/architecture/transport#webrtc-implements-congestion-control).
In terms of optimizing data usage, one of the ways Normcore does this is through delta updates. The datastore keeps track of all changes that have been applied by the local client. Periodically, Room will instruct the datastore to serialize all the outstanding changes to send in an update to the server. This ensures that only the smallest amount of data needs to be serialized and transmitted to the server source (https://normcore.io/documentation/room/datastore#delta-updates).
However, if you're looking for more detailed analysis of your application's bandwidth usage, you might need to use additional tools or services that specialize in network profiling and bandwidth analysis. Unity's built-in profiler might not provide the level of detail you're looking for when it comes to network traffic.
As for best practices, it's generally a good idea to minimize the amount of data you're sending over the network. This could mean optimizing your data structures, using compression, or being mindful of the frequency at which you're sending updates.
If you have more specific questions or need further assistance, you can join Normcore's Discord (https://normcore.io/discord) and ask the community or the developers directly. They might be able to provide more specific advice or point you to resources that aren't covered in the documentation.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
<@599054560270483456> kapa.ai is still learning and improving, please let us know how it did by reacting below
we’re working on a guide now to post to the site!
should be up in a few weeks
That's great to hear thanks!