FlutterのIsolate.spawnはやはり重いという話
Windows Desktopビルドで重い処理を裏で行ったらやっぱり重い
- 画像のデコード、変換、解析といった重い処理をバックグラウンドで行おうとした
- Flutterのcompute()関数を使用してawaitすると、1秒以上かかる
- 実際の解析処理は0.2秒程度
- 流石に重いので計測すると、何も行わない空の関数でも1秒弱実行にかかった
- UIがブロッキングすることは無くなったが、そもそも時間がかかりすぎる
WindowsのHello Worldで計測
- flutter createした直後で同じように空の関数をコールして計測
- 500ms〜600ms程度かかる
- 遅い
解決方法
- 起動したIsolateをキャッシュするようにした
- ほぼ解析時間だけになった
- プログラムは複雑になった
- Isolateの起動は遅い。