Skip to content

5x startup test repitition to reduce noise - #67147

Merged
fluttergithubbot merged 1 commit into
flutter:masterfrom
liyuqian:startup
Oct 2, 2020
Merged

fluttergithubbot merged 1 commit into
flutter:masterfrom
liyuqian:startup

Conversation

@liyuqian

@liyuqian liyuqian commented Oct 2, 2020 •

Copy link
Copy Markdown
Contributor

The current test is still too noisy for Skia perf's step-function-based
alert algorithm to detect performance regressions. See
https://flutter-flutter-perf.skia.org/e/?begin=1596666370&end=1601603433&queries=test%3Dcomplex_layout__start_up&requestType=0
for an example where we fail to detect a regression for commit 1510865.

Currently, a startup test runs for about 1 minute. After the change, the
test should run for about 5 minutes or less because some setup steps
don't need to be repeated 5 times.

The current test is still too noisy for Skia perf's step-function-based
alert algorithm to detect performance regressions. See
https://flutter-flutter-perf.skia.org/e/?begin=1596666370&end=1601603433&queries=test%3Dcomplex_layout__start_up&requestType=0
as an example where we fail to detect a regression for commit 1510865.

Currently, a startup test runs for about 1 minute. After the change, the
test should run for about 5 minutes or less because some setup steps
don't need to be repeated 5 times.
@flutter-dashboard flutter-dashboard Bot added the c: contributor-productivity Team-specific productivity, code health, technical debt. label Oct 2, 2020
@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@liyuqian liyuqian added perf: speed Performance issues related to (mostly rendering) speed c: performance Relates to speed or footprint issues (see "perf:" labels) labels Oct 2, 2020
await flutter('packages', options: <String>['get']);

const int iterations = 3;
const int iterations = 15;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test takes a while to execute, are you sure you want to run it 15 times? I think it probably takes at least 1-2 minutes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I checked the build dashboard and here's what I observed and expected (as documented in the PR/commit description)

Currently, a startup test runs for about 1 minute. After the change, the
test should run for about 5 minutes or less because some setup steps
don't need to be repeated 5 times.

@fluttergithubbot
fluttergithubbot merged commit e45157f into flutter:master Oct 2, 2020
@liyuqian

liyuqian commented Oct 2, 2020

Copy link
Copy Markdown
Contributor Author

CC @mehmetf . Hopefully this would help our customers in the future.

@jonahwilliams

Copy link
Copy Markdown
Contributor

This caused all startup tests to significantly regress in end to end time. For example, on the iOS gallery this test now takes 12 minutes. This is roughly equivalent to a 9 more tests for each startup test, probably about 30-40 more test equivalents.

jonahwilliams pushed a commit that referenced this pull request Oct 19, 2020
@gaaclarke

Copy link
Copy Markdown
Member

@jonahwilliams What do you mean, I don't understand, can reference what you are seeing with a skia perf link? Any change in the results is possibly not a regression but a more representative result.

@jonahwilliams

Copy link
Copy Markdown
Contributor

What do you mean, I don't understand, can reference what you are seeing with a skia perf link? Any change in the results is possibly not a regression but a more representative result.

No, I mean execution time on the devicelab itself. We're already under-capacity and this change is really hurting iOS

@gaaclarke

Copy link
Copy Markdown
Member

I made that point to @liyuqian but he was under the impression that the increase in execution time would be palatable. @liyuqian want to increase it somewhere in the middle, do you have any suggestions @jonahwilliams based on what you saw with 3 versus 15 iterations?

@jonahwilliams

Copy link
Copy Markdown
Contributor

#68516 should help somewhat, in that I've turned the iter count down to 5. If you need more then that to stabilize it would be worth thinking about different ways to benchmark this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c: contributor-productivity Team-specific productivity, code health, technical debt. c: performance Relates to speed or footprint issues (see "perf:" labels) customer: money (g3) perf: speed Performance issues related to (mostly rendering) speed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants