eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

FlutterのIsolate.spawnはやはり重いという話

Windows Desktopビルドで重い処理を裏で行ったらやっぱり重い

  • 画像のデコード、変換、解析といった重い処理をバックグラウンドで行おうとした
  • Flutterのcompute()関数を使用してawaitすると、1秒以上かかる
    • 実際の解析処理は0.2秒程度
  • 流石に重いので計測すると、何も行わない空の関数でも1秒弱実行にかかった
  • UIがブロッキングすることは無くなったが、そもそも時間がかかりすぎる

WindowsHello Worldで計測

  • flutter createした直後で同じように空の関数をコールして計測
  • 500ms〜600ms程度かかる
  • 遅い

解決方法

  • 起動したIsolateをキャッシュするようにした
  • ほぼ解析時間だけになった
  • プログラムは複雑になった
  • Isolateの起動は遅い。