5

IOUtils.copy() を使用して適度に大きな (250 Mb) zip ファイルをダウンロードするための REST サービスを実装しまし。REST サービスは、HttpURLConnection を使用して別のアプリから呼び出されます。受信側で IOUtils.copy() を使用して、ファイルをディスクに保存します。

ファイルのダウンロードには 30 分以上かかります。これはすぎる。

アイデア?より良い実装?

4

2 に答える 2

5

問題が見つかりました。

テストのために、クライアントとサーバーの両方を同じマシンで実行していました。1 台を別のマシンに移動するとすぐに、転送に 1 分強かかりました。

于 2012-07-20T17:46:13.563 に答える
0

ソース コードを読んで、デフォルトのバッファ サイズが 4096 であることを確認してください。
私は特定のケースでバッファ サイズとして 8192 を個人的に使用しました。
バッファサイズで遊ぶことを検討してください。
このコピーを自分で非常に簡単に実装するか、参照としてソース ファイルを参照してください

さらに、サーバーが複数の接続をサポートしているため、可能であればマルチスレッドダウンロードを実行することを検討してください(私は推測します)。

于 2012-07-13T20:34:30.210 に答える