Status Update
Comments
si...@google.com <si...@google.com>
al...@lyft.com <al...@lyft.com> #2
si...@google.com <si...@google.com> #3
It is generally quite tricky to run all of them locally and do diffs in between. Unless there are some partciular ones where you already know they might be failing :) So detecting later in CI is WAI.
However the command to run them is:
- lock your cpu clocks
./gradlew lockClocks
- run the benchmarks
./gradlew :compose:integration-tests:benchmark:connectedCheck
^- this will run them all which I would not recommend as it takes lot of time
./gradlew :compose:integration-tests:benchmark:connectedCheck -Pandroid.testInstrumentationRunnerArguments.class=<fully-qualified-class>
^- this will run only a specific class with benchmarks in it
And to get the result, typically just Android Studio -> logcat -> filter "Benchmark" keyword
al...@gmail.com <al...@gmail.com> #4
I would also recommend trying to repro the regression before and after the change. As we are not doing when filing the bugs, hoping we got it right :)
an...@gmail.com <an...@gmail.com> #5
The regression for some tests is 30x. Please consider reverting.
al...@gmail.com <al...@gmail.com> #6
al...@gmail.com <al...@gmail.com> #7
Branch: androidx-master-dev
commit 338af8a6b3d6a936d06e55720d66133d36df9283
Author: yingleiw <yingleiw@google.com>
Date: Tue Aug 25 14:11:55 2020
Revert "Notify accessibility when semantics node bounds change"
This reverts commit cd4dadf83390f9ecf50e22ff03f21fdafa4bd504.
Reason for revert:
Relnote: remove callback to notify Owner when layoutnode bounds change.
Test: tested manually.
Change-Id: If654ebfbf711c9a7f6bcddb28673e4b6f786d05b
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/pointer/PointerInputEventProcessorTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/Owner.kt
M compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/platform/DesktopOwner.kt
M compose/ui/ui/src/test/kotlin/androidx/compose/ui/node/LayoutNodeTest.kt
ha...@google.com <ha...@google.com> #8
I got errors sending out accessibility events for
./gradlew :compose:integration-tests:benchmark:connectedCheck -Pandroid.testInstrumentationRunnerArguments.class=androidx.ui.benchmark.test.TextInColumnBenchmark#toggleRectangleColor_measure
Also, for the following result:
2020-08-26 13:25:25.041 22776-22796/? I/Benchmark: TextInColumnBenchmark.toggleRectangleColor_measure[100][Stats for timeNs: median 10747475, min 9314063, max 12672410, mean 1.087254574E7, standardDeviation: 991142.0110795262, Stats for allocationCount: median 12761, min 12761, max 12761, mean 12761.0, standardDeviation: 0.0]count=4
What does this 100 means?
I also see this 100 in the dash board:
androidx.ui.benchmark.test.TextInColumnBenchmark_toggleRectangleColor_measure_100_
Thanks!
ap...@google.com <ap...@google.com> #9
100 is a parameterization argument - see
In that benchmark, it's the number of columns, and run with both values there. For local debugging, you can comment out 10
so you only see the results for 100
.
Do the benchmark tests have accessibility manager enabled? (if using ui automator, then accessibility manager is enabled)
I don't expect they'd use UI automator - they're pretty standard instrumentation tests, but it's possible some infrastructure is using ui automator, or enabling the accessibility manager. Can you check while running locally?
ap...@google.com <ap...@google.com> #10
So I suppose the benchmarks (at least the TextInColumnBenchmark#toggleRectangleColor_measure) have accessibility manage enabled.
From my current runs, I see the performance degradation is in AndroidAccessibilityDelegateCompatCompat, not in LayoutNodeWrapper (finding the outer semantics).
So it is the building semantic tree and sending too many events caused this.
ha...@google.com <ha...@google.com> #11
Can you try running a more minimal benchmark, and see if the accessibility manager is enabled? E.g. benchmark-benchmark
(note, not part of compose project, have to use frameworks/support/
)
I'm also curious if it's enabled in standard simple instrumentation tests out of the box (e.g. new empty project in studio, run test there).
Description
We should put a maxLength into TextField and set a default value.