概要
compute パッケージは Flutter の compute 関数を Flutter 以外の Dart アプリケーションに導入し、CPU に負荷のかかるタスクを別個の isolate で効率的に実行できるようにします。これにより、Android、iOS、Web、macOS、Windows、Linux 上の Dart プログラムはメインスレッドをブロッキングせずに重い計算処理をオフロードできます。数学的な演算が多いためやデータ処理、並列実行によって恩恵を受けるような任意のタスクに特に役立ちます。このパッケージは Flutter の元の compute API と互換性を持ちつつ、Flutter フレームワークとは独立しています。
用途
- CPU集約的な計算を実行する
- 大規模なデータセットの処理
- バックグラウンドでの数学演算を実行する
- アプリの応答性の向上
- 長時間実行されるタスクを安全に実行する
- 隔離ベースの並行処理を有効化する
主な機能
- クロスプラットフォーム対応
- Flutter の compute API と一致
- シンプルな関数インターフェース
- Flutter の依存関係なし
- スレッドセーフな実行
- 軽量でスタンドアロン
適している対象
- Dart CLI ツール
- サーバーサイドのDartアプリ
- Webアプリケーション
- デスクトップおよびモバイルアプリ
- パフォーマンスに影響するコード
- Flutter以外のDartプロジェクト
注意事項
- 隔離の意識が必要です
- CPUバウンドタスクに限定
- 入出力操作には適していません
- 引数のシリアル化を処理しなければならない
- ライフサイクル管理の分離
- 頻繁な呼び出しによるメモリオーバーヘッドの可能性