Performance is a major consideration for developers, especially for VR. We've worked hard to make performance the best as possible while maintaining a comprehensive analytics solution. This is an ongoing process and we're happy to discuss your specific requirements.
In general, our SDK performance overhead is insignificant compared to the overhead from rendering and VR interaction systems.
- Web requests can have a notable performance impact. If necessary, increase Automatic Send Timer to send fewer, larger requests.
- Initializing a session should be done while the user will not notice it - immediately when the application begins or during a scene load.
- Prefer using IL2CPP over Mono if possible.
This performance test was conducted early 2022 using SDK version 0.26.14.
These measurements are highly dependent on your implementation. Below are extreme cases - for example, average experiences we've seen may record one Custom Event each second instead of 100 Custom Events in a single frame. The following conditions were applied to our test:
- Unity 2020.3.8f1
- Using Unity's profiler attached to a standalone build
- Mobile test: Pico Neo 2 Eye (Qualcomm Snapdragon 845)
- PC test: HP Omnicept (Intel Core i7-6700 CPU @ 3.40GHz)
|Task||Mobile Mono (ms)||Mobile IL2CPP (ms)||PC (ms)|
|500 Dynamic Objects (Moving)||3.23||2.85||2.50|
|500 Dynamic Objects (Stationary)||0.24||0.15||0.00|
|100 Custom Events (Function1)||1.60||0.68||0.45|
|100 Custom Events (Object2)||4.94||2.27||0.90|
CustomEvent.SendCustomEvent(string category, Vector3 position);. This is the simplest method of recording a Custom Event. ↩
new CustomEvent(string category).Send(Vector3 position);. This is more expensive because it creates an object, but allows more flexibility with appending sensors and properties. ↩