Overview
When integrating any SDK into your Android application, understanding its performance impact is crucial for maintaining a smooth user experience. The Datadog RUM SDK is designed with performance in mind and provides transparent measurements to help you make informed decisions.
Android SDK
To simulate the typical usage of the Datadog SDK, it was integrated into the Docile-Alligator/Infinity-For-Reddit application and typical user behavior (in other words, scrolling the feed, browsing subreddits) was simulated.
The following SDK modules were added to the application:
dd-sdk-android-logs
dd-sdk-android-trace
dd-sdk-android-rum
dd-sdk-android-okhttp
dd-sdk-android-glide
The SDK was set up with default settings.
Below are the results of the measurements.
Measurement | with SDK | without SDK |
---|
Peak CPU Usage | 26.8% | 25.2% |
Peak Memory Usage | 432.6 MB | 437 MB |
App startup time | 243 ms | 228.8 ms |
Apk size | 11566506 bytes | 11044045 bytes |
Network usage | 72.5 KB sent, 22.9 KB received | n/a |
You can read the following page for more details about these benchmarks.
iOS SDK
To simulate the typical usage of Datadog SDK, it was integrated into the Beam application and typical user behavior (scrolling the feed, browsing reddits) was simulated.
The SDK features that were used:
- Basic RUM instrumentation for tracking views, actions, and resources
- Logging
- Tracing
Below are the results of the measurements.
Measurement | with SDK | without SDK |
---|
Peak CPU Usage | 44% | 40% |
Peak Memory Usage | 72.4 MB | 67.96 MB |
App startup time | 0.894 ms | 0.649 ms |
Bundle size | 23.6 MB | 22.2 MB |
Network usage | 21.88 KB sent, 1.68 KB received | n/a |
You can read the following page for more details about these benchmarks.
Continuous benchmarks
Datadog has an internal infrastructure of continuous benchmarking. There is an internal set of UI tests that run on a special benchmark application for every change made to the SDK. This way Datadog is able to detect performance regression early to ensure that they are prevented from reaching production releases.
You can find the source code of the benchmark app here: Android, iOS.
Further Reading
Additional helpful documentation, links, and articles: