Emerge's performance analysis allows you to generate a controlled, statistically sound profile of your app on real, physical devices.

Emerge can also compare performance profiles between two builds of your app, giving you a statistically sound conclusion about key metrics like startup time, and if those metrics have regressed, improved, or remained the same.

Why Emerge Performance Analysis?

While other tools exist for performance profiling on both iOS and Android, none offer the full end-to-end suite that Emerge does. Emerge just requires you to upload a build (or two builds for a performance comparison). From there, Emerge handles the hard parts for you, like:

  • Simple Gradle plugin & Fastlane integration points
  • Device management
  • Test orchestration
  • Variance control (see Variance control for full details)
  • Result handling and posting to common integrations, like Slack, GitHub, and more.

All this combines to give you a simple and easy-to-understand performance analysis of your app.

iOS Performance Analysis

Emerge supports testing the performance of any iOS flow using XCUITests.

Read the full iOS Performance Analysis documentation.

Android Performance Analysis

By default, Emerge profiles Android apps from the process start to the first frame.

Additionally, Emerge can generate performance analyses for any custom flow using UIAutomator tests.

Read the full Android Performance analysis documentation.

FAQ

1. Can I track the change in my apps performance over a sequence of builds?
No, performance analysis can only compare two builds. If you compare commit 1 with commit 2 and commit 2 with commit 3, nothing can be said about the comparison between 1 and 3 - it is not transitive. There are many reasons for this, one is that the two comparisons could run on different phones with different speeds. Also, code change often do not behave in this transitive way. A common example is a DB migration, it might be expensive to migrate data from the format required for commit 1 to commit 2 and then again from commit 2 to commit 3. This migration may show up in your performance test, but then migrating from commit 1 to commit 3 can be fast.