-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Fix: performance improvement on golden test comparison #142913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
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 "@test-exemption-reviewer" in the #hackers channel in Chat (don't just cc them here, they won't see it! Use Discord!). If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
Piinks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @krispypen welcome! Thanks for contributing!
I am not sure how we might test this, have you reached out on discord to see if it is exempt?
|
Oh, not yet, I'll check there @Piinks ! |
Piinks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding a test @krispypen! This LGTM, I'll need to get another reviewer for a second stamp.
justinmc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍. Good catch! Looks like a great performance improvement.
Roll Flutter from eb5d0a4 to a628814 (72 revisions) flutter/flutter@eb5d0a4...a628814 2024-02-13 [email protected] Allow deprecated members from the Dart SDK and Flutter Engine to roll in (flutter/flutter#143347) 2024-02-13 [email protected] [Re-re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions (flutter/flutter#143341) 2024-02-13 [email protected] Roll Packages from 0a69259 to 9385bbb (7 revisions) (flutter/flutter#143366) 2024-02-13 [email protected] Fix `InputDecorator`s `suffix` and `prefix` widgets are tappable when hidden (flutter/flutter#143308) 2024-02-13 [email protected] Pass-Through `inputFormatters` in `DropdownMenu` (flutter/flutter#143250) 2024-02-13 [email protected] Fix `insetPadding` parameter nullability for dialogs (flutter/flutter#143305) 2024-02-12 [email protected] Revert "Migrate integration_test plugin to Gradle Kotlin DSL (#142008)" (flutter/flutter#143329) 2024-02-12 [email protected] Badge class doc typo - missing [ (flutter/flutter#143318) 2024-02-12 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Roll Flutter Engine from 1c3ecee77350 to a19077503a0c (8 revisions) (#143322)" (flutter/flutter#143338) 2024-02-12 [email protected] Roll Flutter Engine from 1c3ecee77350 to a19077503a0c (8 revisions) (flutter/flutter#143322) 2024-02-12 [email protected] [web] Move JS interop to extension types (flutter/flutter#143274) 2024-02-12 [email protected] Add documentation for best practices for `StreamBuilder` like `FutureBuilder` (flutter/flutter#143295) 2024-02-12 [email protected] Roll Flutter Engine from 8806987182a3 to 1c3ecee77350 (1 revision) (flutter/flutter#143315) 2024-02-12 [email protected] Fix dual focus issue in CheckboxListTile, RadioListTile and SwitchListTile (flutter/flutter#143213) 2024-02-12 [email protected] Revert "[Re-land] Enforce a policy on supported Gradle, Java, AGP, and KGP versions" (flutter/flutter#143314) 2024-02-12 [email protected] Update integration_test iOS FTL README script to remove targeted version (flutter/flutter#143248) 2024-02-12 [email protected] Remove unnecessary 'debugLabel: null'. (flutter/flutter#143253) 2024-02-12 [email protected] Introduce `iconAlignment` for the buttons with icon (flutter/flutter#137348) 2024-02-12 [email protected] Roll Packages from 11152d2 to 0a69259 (4 revisions) (flutter/flutter#143306) 2024-02-12 [email protected] Roll Flutter Engine from 4f119619dfa8 to 8806987182a3 (1 revision) (flutter/flutter#143304) 2024-02-12 [email protected] Roll Flutter Engine from b0753c0e25f8 to 4f119619dfa8 (1 revision) (flutter/flutter#143291) 2024-02-11 [email protected] Roll Flutter Engine from 936495d94cc6 to b0753c0e25f8 (1 revision) (flutter/flutter#143282) 2024-02-11 [email protected] Roll Flutter Engine from b06b3e0d75ad to 936495d94cc6 (1 revision) (flutter/flutter#143280) 2024-02-11 [email protected] Roll Flutter Engine from 1478f4e75dd9 to b06b3e0d75ad (1 revision) (flutter/flutter#143275) 2024-02-10 [email protected] Fix text painter longest line resizing logic for `TextWidthBasis.longestLine` (flutter/flutter#143024) 2024-02-10 [email protected] Roll Flutter Engine from e6ceb3504f50 to 1478f4e75dd9 (1 revision) (flutter/flutter#143273) 2024-02-10 [email protected] Move Windows arm64 tests to bringup true (flutter/flutter#143272) 2024-02-10 [email protected] Roll Flutter Engine from 3c5149ccde38 to e6ceb3504f50 (1 revision) (flutter/flutter#143267) 2024-02-10 [email protected] Roll Flutter Engine from c587bd69985f to 3c5149ccde38 (2 revisions) (flutter/flutter#143266) 2024-02-10 [email protected] Roll Flutter Engine from e08b6c899c42 to c587bd69985f (1 revision) (flutter/flutter#143265) 2024-02-10 [email protected] Roll Flutter Engine from 1b8f23bbd099 to e08b6c899c42 (2 revisions) (flutter/flutter#143264) 2024-02-10 [email protected] Roll Flutter Engine from 41daa5b913b9 to 1b8f23bbd099 (2 revisions) (flutter/flutter#143261) 2024-02-10 [email protected] Roll Flutter Engine from f969c52f133a to 41daa5b913b9 (1 revision) (flutter/flutter#143258) 2024-02-10 [email protected] Roll Flutter Engine from 6a3b0216ff5b to f969c52f133a (3 revisions) (flutter/flutter#143256) 2024-02-09 [email protected] Roll Flutter Engine from 8c521eb24171 to 6a3b0216ff5b (4 revisions) (flutter/flutter#143251) 2024-02-09 [email protected] Upgrade leak_tracker. (flutter/flutter#143236) 2024-02-09 [email protected] Fix: performance improvement on golden test comparison (flutter/flutter#142913) 2024-02-09 [email protected] Implementing `switch` expressions in `lib/src/material/` (flutter/flutter#142793) 2024-02-09 [email protected] Add position data to `OnDragEnd` callback (flutter/flutter#140378) 2024-02-09 [email protected] Roll Flutter Engine from 1232d598f7c4 to 8c521eb24171 (2 revisions) (flutter/flutter#143237) 2024-02-09 [email protected] Roll Flutter Engine from 7a5390c6b3bd to 1232d598f7c4 (1 revision) (flutter/flutter#143235) 2024-02-09 [email protected] Set plugin template minimum iOS version to 12.0 (flutter/flutter#143167) 2024-02-09 [email protected] Roll Flutter Engine from 7a241130fcf8 to 7a5390c6b3bd (1 revision) (flutter/flutter#143231) 2024-02-09 [email protected] Migrate integration_test plugin to Gradle Kotlin DSL (flutter/flutter#142008) 2024-02-09 [email protected] Roll Flutter Engine from dcac9863a1fc to 7a241130fcf8 (1 revision) (flutter/flutter#143222) 2024-02-09 [email protected] Roll Flutter Engine from 1508b11bf791 to dcac9863a1fc (1 revision) (flutter/flutter#143220) ...
During golden test image comparison 2 lists of a different type are compared with the method "identical", so this will never be true. The test image is a _Uint8ArrayView while the master image is an Uint8List. So that results in always a heavy computation to get the difference between the test and the master image.
When you run this test snippet I go from 51 seconds to 14 seconds:
Pre-launch Checklist
///).