Overview
When integrating any SDK into an Android application, understanding its performance impact is crucial for maintaining a good user experience. The Flashcat RUM SDK is designed with performance in mind and provides transparent measurement data to help you make informed integration decisions.The SDK uses asynchronous processing and batch reporting mechanisms to avoid blocking the main thread, ensuring it does not affect the application’s UI responsiveness.
Performance Benchmark
To evaluate the actual performance impact of the SDK on your application, we conducted performance benchmarks under typical usage scenarios. The following SDK modules were enabled during testing:dd-sdk-android-rum: RUM core functionalitydd-sdk-android-trace: Distributed tracingdd-sdk-android-okhttp: Network request tracking
Test Results
The above data are reference values under typical scenarios; actual impact may vary depending on application complexity, device performance, and SDK configuration.
Performance Impact Details
CPU Usage
CPU Usage
The SDK’s CPU impact primarily comes from:
- Event collection and processing
- Data batching and compression
- Network request reporting
Memory Usage
Memory Usage
The SDK uses a fixed-size memory buffer to store pending event data, which does not grow indefinitely over time. Stale data is automatically cleaned up to ensure it does not consume excessive memory.
Launch Time
Launch Time
The SDK initialization process is optimized, with launch time impact controlled to milliseconds.
APK Size
APK Size
The SDK uses a modular design, allowing you to include only the necessary functional modules:
Including only the necessary modules can minimize the impact on APK size.The following lab measurements can be used as reference data when estimating integration cost:
The APK size data above was measured with Flashduty Android SDK 0.4.0 and the Android demo. The measurement scope is APK file size increase. Actual results vary depending on dependencies already present in the host app, R8 keep rules, App Bundle / ABI split usage, and whether Trace, WebView, OkHttp, or NDK modules are enabled.
Network Usage
Network Usage
The SDK employs the following strategies to optimize network usage:
- Batch reporting: Events are cached locally first and sent in batches to reduce the number of network requests
- Data compression: Reported data is compressed to reduce transmission traffic
- Intelligent scheduling: Upload timing is intelligently scheduled based on network status and battery level
Performance Optimization Recommendations
If you have specific performance requirements, consider the following optimization measures:1
Adjust Sampling Rate
Reduce the number of collected events by configuring the sampling rate:
2
Enable Features on Demand
Only enable necessary tracking features:
3
Configure Upload Strategy
Adjust batch upload size and frequency to optimize network usage based on your application’s needs.
Offline Data Storage
When the device is offline, the SDK stores data locally with strict storage space limits:- Uses fixed-size disk cache
- Expired data is automatically cleaned up
- Cached data will not affect device storage space
Related Documentation
SDK Integration Guide
Learn how to integrate the SDK
Advanced Configuration
Learn about SDK advanced configuration options
Data Collection
Learn what data the SDK collects