Repository: flutter
Issue: Text with multiple emojis causes extreme jank on Android
Labels: engine,c: performance,dependency: skia,a: typography,perf: speed,P2,team-engine,triaged-engine

I came by accident across the fact that there is extremely heavy lag on building text widgets with multiple emojis (maybe those are the reason).
The jank frame took about 230ms on a Pixel 3 XL phone in profile mode (Android 11)
I can exclude the possibility that another widget is causing the lag because when removing the text widget from the tree the lag is gone. This seems like an Android-only issue. I tested it also on iOS and this worked completely fine.

The steps to reproduce this are quite easy. Just create a new app with a text widget and copy paste the following (user written) example text:
<details>
  <summary>Example text to copy paste</summary>

```
Willkommen auf meinem Profil 😊
      
Ich schreibe seit Ende 2018 Geschichten im Fantasy Bereich. Wobei ich mich mittlerweile auch in Humor und Horror versuche. 
Angefangen hat alles mit dem 1. ersten Band von Dämonen Chroniken. Seitdem ist das Schreiben, neben meinen Kindern, meine große Leidenschaft. Es hilft mir dem Alltagsstress zu entfliehen und zu entspannen. Außerdem liebe ich es, von meinen Charakteren mitgerissen und überrascht zu werden. Deswegen plane ich meine Geschichten auch nur grob, so weiß ich oft selbst nicht, was als nächstes passiert und genau das ist es, was mir daran so viel Freude bereitet. 
      

Noch ein paar kleine Infos über mich;
🔹Ich höre am liebsten Metal (vorzugsweise Dark & Symphonic Metal) 
🔹liebe alles was mit Ägypten zu tun hat 
🔹Interesse mich für Mythologie, das Übernatürliche und alles was ansatzweise mit Magie und Mystik zu tun hat 
 
 ༻ιcʜ ʙιɳ ɳιcʜᴛ ᴠєяяϋckᴛ, ᴍєιɳє яєαlιᴛα̈ᴛ ιsᴛ єιɳfαcʜ αɳ∂єяs αls ∂єιɳє༺
-Alice im Wunderland 
      
      
-------------------------------------
Infos zu meinen Geschichten:
      
✔️(abgeschlossen & überarbeitet) 
☑️(abgeschlossen, ohne überarbeitung) 
✴️(laufend) 
❌(in Planung)
Alle hochgeladen Kapitel sind bereits korrigiert.
Updates kommen nach Lust und Laune – mal schneller, mal Langsamer. Aber ich kann versprechen, dass all meine Geschichten beendet werden. 
      
      
🔸Meine Roman-Reihen
      
😈Dämonen Chroniken/Sammelband (Dark Fantasy)
▪ Buch 1: Luzifers Aufstieg (✔️) 
▪ Buch 2: Der Verlorene Tempel (✔️) 
▪ Buch 3: Engel der Dunkelheit (✴️) 
       
😇Chroniken der Erzengel/Sammelband (Fantasy)
▪ Buch 1: Luzifer (✔️) 
      
🌙Die Tenolia Saga (Fantasy) 
▪ Band 1: Flamme Des Lebens (❌) 
      
      
🔸Meine Einzelgeschichten
      
🐲Fantasy:
▪️Dragon Eyes (✴️) 
▪️In sanguine daemoniorum (❌) 
▪️Im Zeichen der Krähe (❌) 
      
👽Sci-Fi 
▪️Sartana (✴️) 
      
🗡️History:
▪️Betrayal and Agony (❌)
      
☯️Entwicklungsroman:
▪️Scherben Meer (✴️)
      
🎭Humor (sehr langsame updates) 
▪️Dämonen sind auch nur Menschen (✴️) 
▪️Sensenmann auf Abwegen (✴️)
      
      
🔸Meine Kurzgeschichten
      
➿Sammlung
▪️7 Zeichen des Todes (✴️)
▪️Nanuk - Der kleine Wolf (✴️)
▪️Diabolo (✴️)
▪️Dystopie (✴️) 
      
➰Einzelne
▪️Am Ende der Zeit (✔️)
▪️Glück im Spiel? (☑️)
▪️Verbotenes Verlangen (❌) 
       
      
🔸Meine Gedichte
      
🖋️Sammlung (alle laufend)
      
🌹Tiefe der Seele 
▪ Persönliche Gefühle/Erinnerungen
☮️Gedanken - Flüchtig wie ein Flügelschlag
▪ Gedanken & Meinungen
🌈Farbenspiel der Natur
▪ alles rund um Mutter Erde
✡️Sehnsüchte der Dunkelheit 
▪ gruselig, düster, einsam, Abgründe des menschlichen seins
      
🖊️Einzeln (abgeschlossen) 
▪️An Helloween
▪️Weihnachtsfest
```
</details>

Screenshots from the performance monitoring dev tools:

<img width="801" alt="Skjermbilde 2021-03-12 kl  18 31 03" src="https://user-images.githubusercontent.com/33794642/111005309-dc51b580-838a-11eb-9c8b-13bb31201bf0.png">

When clicking on the "Layout" bar in the flame chart I am getting the following result:

<img width="1356" alt="Skjermbilde 2021-03-12 kl  18 31 20" src="https://user-images.githubusercontent.com/33794642/111005323-e378c380-838a-11eb-8bf8-78568ff5b628.png">

<details>
  <summary>flutter doctor -v</summary>
  
```
[✓] Flutter (Channel beta, 2.0.1, on macOS 11.2.2 20D80 darwin-x64, locale nb-DE)
    • Flutter version 2.0.1 at /Users/felixmittermeier/Documents/flutter
    • Framework revision c5a4b4029c (8 days ago), 2021-03-04 09:47:48 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/felixmittermeier/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.54.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.20.0

[✓] Connected device (3 available)
    • Pixel 3 XL (mobile) • 192.168.178.25:5555 • android-arm    • Android null (API null)
    • macOS (desktop)     • macos               • darwin-x64     • macOS 11.2.2 20D80 darwin-x64
    • Chrome (web)        • chrome              • web-javascript • Google Chrome 89.0.4389.82
```

• No issues found!
</details>