Benchmarks¶
Running the benchmark¶
You can run the benchmark by executing ./gradlew :android-benchmark:benchmark:connectedCheck
. Note that the benchmark should be run on an actual device
You can then take the output from the benchmark and run it through DataParser.kt
to get a structured breakdown as seen below.
It’s important to look at the units. In general, RxDogTag does add some overhead to your RxJava subscriptions but that overhead is irrelevant in the larger execution context of the code around it (less than a millisecond in most cases).
Running the benchmark on a Pixel 3 yields the below results.
Event throughput: grouped by number of events¶
Measures the amount of time it takes for given number of elements to pass through the stream.
Simple: 1 item (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.001ms | 532ns |
true | false | 0.007ms | 7,060ns |
true | true | 0.007ms | 7,378ns |
Complex: 1 item (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
true | false | 0.049ms | 49,195ns |
true | true | 0.050ms | 50,492ns |
false | false | 0.054ms | 53,672ns |
Simple: 1_000 items (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.024ms | 23,968ns |
true | false | 0.041ms | 40,743ns |
true | true | 0.153ms | 152,943ns |
Complex: 1_000 items (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.291ms | 291,301ns |
true | false | 0.313ms | 312,864ns |
true | true | 0.313ms | 313,334ns |
Simple: 1_000_000 items (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 23.994ms | 23,993,700ns |
true | false | 27.305ms | 27,304,847ns |
true | true | 166.887ms | 166,887,047ns |
Complex: 1_000_000 items (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
true | false | 249.740ms | 249,739,764ns |
false | false | 252.728ms | 252,727,577ns |
true | true | 257.554ms | 257,553,671ns |
Simple: 1 item (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.001ms | 519ns |
true | false | 0.007ms | 7,234ns |
true | true | 0.008ms | 7,581ns |
Complex: 1 item (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
true | false | 0.050ms | 50,081ns |
true | true | 0.051ms | 50,787ns |
false | false | 0.056ms | 56,004ns |
Simple: 1_000 items (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.025ms | 24,920ns |
true | false | 0.041ms | 40,568ns |
true | true | 0.153ms | 153,124ns |
Complex: 1_000 items (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.273ms | 273,178ns |
true | true | 0.343ms | 342,812ns |
true | false | 0.375ms | 375,208ns |
Simple: 1_000_000 items (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 23.953ms | 23,952,919ns |
true | false | 26.792ms | 26,791,825ns |
true | true | 162.547ms | 162,547,359ns |
Complex: 1_000_000 items (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
true | true | 300.186ms | 300,186,228ns |
true | false | 302.881ms | 302,880,498ns |
false | false | 304.952ms | 304,952,062ns |
Subscribe cost: grouped by complexity¶
Measures the cost to subscription incurred by RxDogTag. Subscription means no emissions, subscription only.
Simple (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.000ms | 331ns |
true | false | 0.007ms | 7,275ns |
Simple (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.000ms | 365ns |
true | false | 0.008ms | 7,506ns |
Complex (Observable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.002ms | 1,673ns |
true | false | 0.010ms | 9,770ns |
Complex (Flowable)¶
RxDogTag Enabled | Guarded Observer Callbacks Enabled | Time (ms) | Time (ns) |
---|---|---|---|
false | false | 0.006ms | 5,741ns |
true | false | 0.021ms | 20,783ns |