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.

Performance impact benchmarks

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.

Measurementwith SDKwithout SDK
Peak CPU Usage26.8%25.2%
Peak Memory Usage432.6 MB437 MB
App startup time243 ms228.8 ms
Apk size11566506 bytes11044045 bytes
Network usage72.5 KB sent, 22.9 KB receivedn/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:

  1. Basic RUM instrumentation for tracking views, actions, and resources
  2. Logging
  3. Tracing

Below are the results of the measurements.

Measurementwith SDKwithout SDK
Peak CPU Usage44%40%
Peak Memory Usage72.4 MB67.96 MB
App startup time0.894 ms0.649 ms
Bundle size23.6 MB22.2 MB
Network usage21.88 KB sent, 1.68 KB receivedn/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: