HttpRequest をいじってみたところ、リクエスト後にメモリがクリーンアップされていないことがわかりました。しばらくすると、Chrome 内の実行中のタブがクラッシュします。
ここにいくつかのテストコードがあります。大きなサイズのファイルを「web」ディレクトリに置き、それに応じてコードに URL を設定します。
import 'dart:async';
import 'dart:html';
void main() {
const PATH = "http://127.0.0.1:3030/PATH_TO_FILE";
new Timer.periodic(new Duration(seconds:10), (Timer it)=>getString(PATH));
}
void getString( String url){
HttpRequest.getString(url).then((String data){
});
}
再確認したところ、メモリ リークがまだ存在します。
- 現在のバージョン: 24275
- 使用時間:30秒
- 使用ファイル: 現在のプロジェクトの web ディレクトリにコピーされた chromium\chrome.dll.pdb
- Windows 64ビットとLinux 64ビットで試しました
メモリ リークは Dartium にのみ存在します。コードを JS にコンパイルして Firefox で実行すると、メモリ使用量が最大 3.5 GB になり、そこにとどまります。
これは本当にバグですか、それとも何か問題がありましたか?