Skip to content

Commit f99f90f

Browse files
chore: Android benchmark screen of SR data pipelines on iOS Raw Frames (#410)
## Summary Added benchmark to test CPU and compression of session replay data pipelines <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Changes are isolated to the e2e app and benchmarking utilities plus a small non-functional formatting tweak in the SDK; primary risk is increased repo/app size and potential build/runtime impact from the added benchmark assets. > > **Overview** > Adds a new in-app **Session Replay benchmark** flow to the Android e2e app: a `BenchmarkActivity` that loads a recorded Mastodon frame dataset from assets, runs multiple compression strategies and `TileSignatureManager` timing, and displays results in a bottom sheet. > > Wires the benchmark into the compose app via a new Manifest activity entry and a Main screen button, adds the required `kotlinx-serialization-json` dependency for event encoding, and includes the benchmark `frames.csv` asset dataset. Minor housekeeping: `.gitignore` now ignores `lib/.cxx`, and `ExportDiffManager.createCaptureEvent` is reformatted (no behavioral change intended). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7bdef21. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 8d610bd commit f99f90f

File tree

155 files changed

+755
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+755
-4
lines changed

e2e/android/app/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ dependencies {
9090
// Uncomment to use the publicly released version (note this may be behind branch/main)
9191
// implementation("com.launchdarkly:launchdarkly-observability-android:0.2.0")
9292

93-
implementation("com.launchdarkly:launchdarkly-android-client-sdk:5.10.0")
93+
implementation("com.launchdarkly:launchdarkly-android-client-sdk")
9494

9595
implementation("io.opentelemetry:opentelemetry-api:1.51.0")
9696
implementation("io.opentelemetry:opentelemetry-sdk:1.51.0")
@@ -120,6 +120,9 @@ dependencies {
120120
implementation(platform(libs.androidx.compose.bom))
121121
implementation("androidx.compose.runtime:runtime")
122122

123+
// Serialization runtime (used by benchmark to encode replay events)
124+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
125+
123126
// Compose UI dependencies -- only for the compose flavor
124127
"composeImplementation"(libs.androidx.activity.compose)
125128
"composeImplementation"(libs.androidx.ui)

e2e/android/app/src/compose/AndroidManifest.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
<activity
1616
android:name=".masking.ComposeWebActivity"
1717
android:exported="false" />
18+
<activity
19+
android:name=".benchmark.BenchmarkActivity"
20+
android:exported="false"
21+
android:label="Benchmark"
22+
android:theme="@style/Theme.AndroidObservability" />
1823

1924
<activity
2025
android:name=".MainActivity"
22.3 KB
24.7 KB
24.7 KB
167 KB
224 KB
203 KB
124 KB
103 KB

0 commit comments

Comments
 (0)