-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Avoid calling TextPainter.plainText for simple static text
#146084
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
|
I'm supposed to get a "please add a test" message from the bot right? |
Yeah, I am surprised the bot is silent on this one. |
|
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
with TextSpan getSpan(int seed) {
final char = getString(seed);
return TextSpan(text: 'AAA', children: [TextSpan(text: char * 10), TextSpan(text: char * 20)]);
}
final spans = List.generate(iters, getSpan);
final stopwatch = Stopwatch()..start();
for (int i = 0; i < iters; i++) {
painter.text = spans[i];
painter.plainText;
}
stopwatch.stop();
print('time elapsed: ${stopwatch.elapsedMilliseconds} ms. ${stopwatch.elapsedMicroseconds / iters} microseconds per iteration.');
exit(0);
I get
That doesn't seem bad? How does that take 20% of the |
goderbauer
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
Roll Flutter from a418568 to e868e2b (34 revisions) flutter/flutter@a418568...e868e2b 2024-04-03 65075121+AcarFurkan@users.noreply.github.com Add SegmentedButton expand feature (flutter/flutter#142804) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from e36b9b10c36f to 56fa2c33a5f7 (1 revision) (flutter/flutter#146205) 2024-04-03 engine-flutter-autoroll@skia.org Roll Packages from 83f3842 to 0e848fa (3 revisions) (flutter/flutter#146201) 2024-04-03 ian@hixie.ch Enhance ColorScheme.fromSeed with a new `variant` parameter (flutter/flutter#144805) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0280de5be276 to e36b9b10c36f (1 revision) (flutter/flutter#146200) 2024-04-03 leroux_bruno@yahoo.fr Fix typos in bottom_sheet.dart (flutter/flutter#146188) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 979030d81f8d to 0280de5be276 (2 revisions) (flutter/flutter#146199) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from bef3bbe3f74e to 979030d81f8d (1 revision) (flutter/flutter#146186) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5fc83bc24b2e to bef3bbe3f74e (1 revision) (flutter/flutter#146183) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0da1b2eb370a to 5fc83bc24b2e (1 revision) (flutter/flutter#146180) 2024-04-03 31859944+LongCatIsLooong@users.noreply.github.com Avoid calling `TextPainter.plainText` for simple static text (flutter/flutter#146084) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from e603f89844a9 to 0da1b2eb370a (2 revisions) (flutter/flutter#146179) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from ef60a95d78c1 to e603f89844a9 (3 revisions) (flutter/flutter#146177) 2024-04-03 31859944+LongCatIsLooong@users.noreply.github.com Fix chip baseline implementation (flutter/flutter#146162) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from bb4ec2d7eb39 to ef60a95d78c1 (1 revision) (flutter/flutter#146176) 2024-04-03 sokolovskyi.konstantin@gmail.com Add tests for material_state_mouse_cursor.0.dart API example. (flutter/flutter#145987) 2024-04-03 36861262+QuncCccccc@users.noreply.github.com Update material_color_utilities package version to latest 0.11.1 (flutter/flutter#145959) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5f6dec8bd877 to bb4ec2d7eb39 (4 revisions) (flutter/flutter#146169) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5dbcfdc2a456 to 5f6dec8bd877 (1 revision) (flutter/flutter#146163) 2024-04-02 polinach@google.com Dispose FocusNode in tests. (flutter/flutter#146161) 2024-04-02 kallentu@google.com Add `none` language strings to code blocks. (flutter/flutter#146154) 2024-04-02 103135467+sealesj@users.noreply.github.com Refactor docs (flutter/flutter#145998) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from c60b00a20fc3 to 5dbcfdc2a456 (3 revisions) (flutter/flutter#146159) 2024-04-02 fluttergithubbot@gmail.com Marks Linux_pixel_7pro complex_layout_scroll_perf_impeller__timeline_summary to be unflaky (flutter/flutter#140038) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5bf8b94505a4 to c60b00a20fc3 (2 revisions) (flutter/flutter#146157) 2024-04-02 103135467+sealesj@users.noreply.github.com Refactor analyze (flutter/flutter#146138) 2024-04-02 rmolivares@renzo-olivares.dev Implement SelectionArea triple click gestures (flutter/flutter#144563) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6883f7313da0 to 5bf8b94505a4 (2 revisions) (flutter/flutter#146152) 2024-04-02 leroux_bruno@yahoo.fr Fix border color is wrong for a focused and hovered TextField (flutter/flutter#146127) 2024-04-02 goderbauer@google.com Sync lints and enable `annotate_redeclares` (flutter/flutter#146144) 2024-04-02 31859944+LongCatIsLooong@users.noreply.github.com Implements `RenderBox.computeDryBaseline` for material render boxes (flutter/flutter#146027) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from 523fc953ebc8 to 6883f7313da0 (2 revisions) (flutter/flutter#146140) 2024-04-02 tessertaha@gmail.com Fix `MenuItemButton` overflow (flutter/flutter#143932) 2024-04-02 engine-flutter-autoroll@skia.org Roll Packages from d5aff19 to 83f3842 (4 revisions) (flutter/flutter#146134) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,rmistry@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 ...
Roll Flutter from a418568 to e868e2b (34 revisions) flutter/flutter@a418568...e868e2b 2024-04-03 65075121+AcarFurkan@users.noreply.github.com Add SegmentedButton expand feature (flutter/flutter#142804) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from e36b9b10c36f to 56fa2c33a5f7 (1 revision) (flutter/flutter#146205) 2024-04-03 engine-flutter-autoroll@skia.org Roll Packages from 83f3842 to 0e848fa (3 revisions) (flutter/flutter#146201) 2024-04-03 ian@hixie.ch Enhance ColorScheme.fromSeed with a new `variant` parameter (flutter/flutter#144805) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0280de5be276 to e36b9b10c36f (1 revision) (flutter/flutter#146200) 2024-04-03 leroux_bruno@yahoo.fr Fix typos in bottom_sheet.dart (flutter/flutter#146188) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 979030d81f8d to 0280de5be276 (2 revisions) (flutter/flutter#146199) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from bef3bbe3f74e to 979030d81f8d (1 revision) (flutter/flutter#146186) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5fc83bc24b2e to bef3bbe3f74e (1 revision) (flutter/flutter#146183) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0da1b2eb370a to 5fc83bc24b2e (1 revision) (flutter/flutter#146180) 2024-04-03 31859944+LongCatIsLooong@users.noreply.github.com Avoid calling `TextPainter.plainText` for simple static text (flutter/flutter#146084) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from e603f89844a9 to 0da1b2eb370a (2 revisions) (flutter/flutter#146179) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from ef60a95d78c1 to e603f89844a9 (3 revisions) (flutter/flutter#146177) 2024-04-03 31859944+LongCatIsLooong@users.noreply.github.com Fix chip baseline implementation (flutter/flutter#146162) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from bb4ec2d7eb39 to ef60a95d78c1 (1 revision) (flutter/flutter#146176) 2024-04-03 sokolovskyi.konstantin@gmail.com Add tests for material_state_mouse_cursor.0.dart API example. (flutter/flutter#145987) 2024-04-03 36861262+QuncCccccc@users.noreply.github.com Update material_color_utilities package version to latest 0.11.1 (flutter/flutter#145959) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5f6dec8bd877 to bb4ec2d7eb39 (4 revisions) (flutter/flutter#146169) 2024-04-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5dbcfdc2a456 to 5f6dec8bd877 (1 revision) (flutter/flutter#146163) 2024-04-02 polinach@google.com Dispose FocusNode in tests. (flutter/flutter#146161) 2024-04-02 kallentu@google.com Add `none` language strings to code blocks. (flutter/flutter#146154) 2024-04-02 103135467+sealesj@users.noreply.github.com Refactor docs (flutter/flutter#145998) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from c60b00a20fc3 to 5dbcfdc2a456 (3 revisions) (flutter/flutter#146159) 2024-04-02 fluttergithubbot@gmail.com Marks Linux_pixel_7pro complex_layout_scroll_perf_impeller__timeline_summary to be unflaky (flutter/flutter#140038) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5bf8b94505a4 to c60b00a20fc3 (2 revisions) (flutter/flutter#146157) 2024-04-02 103135467+sealesj@users.noreply.github.com Refactor analyze (flutter/flutter#146138) 2024-04-02 rmolivares@renzo-olivares.dev Implement SelectionArea triple click gestures (flutter/flutter#144563) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6883f7313da0 to 5bf8b94505a4 (2 revisions) (flutter/flutter#146152) 2024-04-02 leroux_bruno@yahoo.fr Fix border color is wrong for a focused and hovered TextField (flutter/flutter#146127) 2024-04-02 goderbauer@google.com Sync lints and enable `annotate_redeclares` (flutter/flutter#146144) 2024-04-02 31859944+LongCatIsLooong@users.noreply.github.com Implements `RenderBox.computeDryBaseline` for material render boxes (flutter/flutter#146027) 2024-04-02 engine-flutter-autoroll@skia.org Roll Flutter Engine from 523fc953ebc8 to 6883f7313da0 (2 revisions) (flutter/flutter#146140) 2024-04-02 tessertaha@gmail.com Fix `MenuItemButton` overflow (flutter/flutter#143932) 2024-04-02 engine-flutter-autoroll@skia.org Roll Packages from d5aff19 to 83f3842 (4 revisions) (flutter/flutter#146134) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,rmistry@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 ...
InlineSpan.toPlainTextis surprisingly expensive even for a simpleTextSpanlikeTextSpan(text: 'AAA', children: [TextSpan(text: char * 10), TextSpan(text: char * 20)])Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.