Record the first complete benchmark run, and what its numbers are not
With the install watcher answering MIUI's dialog, all four tests ran and three produced numbers: coldStart 574.17 ms P50 (553.95-730.19), opening a 1000-file folder 14 frames P50 (13-17), scrolling it with four swipes 98 frames P50 (93-100). The search benchmark still fails, on the app bar's search action not being in the accessibility tree after twenty seconds - the setup wait is raised from ten to twenty now that the folder render is known to be the slow step. The frame counts are labelled as frame counts and not as jank, because this phone reports no frame durations at all: the same results file contains frameCount and nothing else, so 14 frames says the interaction is short and says nothing about whether a frame was slow. The doc also keeps the measurements that explain the watcher's shape - the dialog is FLAG_SECURE, its lifetime varies between under a second and 8.5 s, and pm install from an app uid fails earlier with MIUI's XSpace SecurityException - along with the honest cost: MIUI keeps mCurrentFocus on the installer after the window is gone, so a coordinate tap can land on the home screen, which it did. The watcher no longer reuses a saved position at all and refuses to tap within two seconds of the previous tap.
This commit is contained in:
@@ -143,11 +143,11 @@ class BrowserBenchmark {
|
||||
device.findObject(By.text(Fixture.NAME))!!.click()
|
||||
device.wait(Until.hasObject(By.text(Fixture.FIRST_FILE)), TIMEOUT_MS)
|
||||
// The measured block clicks this, so it has to exist before the clock starts: right after a
|
||||
// thousand rows render, the app bar is a frame behind the list and an immediate lookup
|
||||
// comes back null.
|
||||
// thousand rows render, the app bar is a frame behind the list. Ten seconds was not enough on
|
||||
// this phone, so this one step gets twice that — it is setup, not measurement.
|
||||
assertNotNull(
|
||||
"the app bar's search action is missing; see browser_search_hint in strings.xml",
|
||||
device.wait(Until.findObject(By.desc(SEARCH_ACTION)), TIMEOUT_MS),
|
||||
device.wait(Until.findObject(By.desc(SEARCH_ACTION)), SLOW_TIMEOUT_MS),
|
||||
)
|
||||
},
|
||||
) {
|
||||
@@ -186,6 +186,9 @@ class BrowserBenchmark {
|
||||
companion object {
|
||||
private const val TIMEOUT_MS = 10_000L
|
||||
|
||||
/** For something the device may take a while to render, in setup where it costs no measurement. */
|
||||
private const val SLOW_TIMEOUT_MS = 20_000L
|
||||
|
||||
/** How long to wait for something that should already be on screen. */
|
||||
private const val SHORT_MS = 2_000L
|
||||
|
||||
|
||||
Reference in New Issue
Block a user