Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mj-hd/c5f4eda09ca506c0ac18cfdc7f01eea5 to your computer and use it in GitHub Desktop.
Save mj-hd/c5f4eda09ca506c0ac18cfdc7f01eea5 to your computer and use it in GitHub Desktop.
Flutter 3のパフォーマンス改善まとめ

Flutter 3のパフォーマンス改善まとめ

参考: https://medium.com/flutter/whats-new-in-flutter-3-8c74a5bc32d0

  • 部分再描画のAndroid適用 (flutter/engine#29591)

    • 端末が対応してる場合、画面全体を更新せずに変化のあった領域だけ更新されるようになる
    • Pixel 4 XLのベンチマークで平均, 90th, 99th共にRasterが5倍ぐらい早くなった
    • iOSは既に2.10で適用済み (flutter/engine#28801)
    • 古めの端末だと未対応かも?
  • SaveLayerの自動削減 (flutter/engine#30957, flutter/engine#29775, Issue: flutter/flutter#92874)

  • Raster/UIスレッドの優先度が他のスレッド(GCとか)より高くなった

    • 〜20%ほどのフレームレートの改善
  • Rasterのキャッシュの精度が良くなった (flutter/engine#31417)

    • 今までは描画コマンド数でキャッシュするか決めていたが、描画コマンドのコストを試算して決めるようになった
    • メモリ使用量の改善
  • iOSでフレームレートが落ちるバグが改善された (flutter/engine#31513)

    • CupertinoPageRouteのバックスワイプで戻る最中、フレームレートが落ちる問題
    • ListViewのカクツキも改善した
  • ImpellerというiOSの描画バックエンドが実験的に入った( https://github.com/flutter/engine/tree/main/impeller

    • --enable-impeller で有効になる
    • iOSのカクツキの大きな原因として実行中のシェーダーのコンパイル処理があったが、汎用的なシェーダーを事前にビルドしてエンジンに入れとく
    • Galleryアプリが(ワーストケースで)20倍早くなったらしい
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment