0

ウィンドウアプリケーションから数千枚の写真をアップロードするというこの要件があります。

私がフォローしているロジックは..最初に写真がローカルボックスでサイズ変更され、次にアップロードされます。

dotnetでWebサービスを使用したHttpアップロードと同様にFTPアップロードを使用してみました。

しかし、私が得た最善の解決策は...1000枚の写真をアップロードするのに100分かかることです。つまり、10枚の写真をアップロードするのに1分。

ここでパフォーマンスを改善するために他に何ができるかを誰かが提案できますか?

Lemmeは、詳細が必要かどうかを知っています。

4

4 に答える 4

4

必要な帯域幅に加えて、一度に1つのファイルをアップロードする際のオーバーヘッドがあります。ファイルごとのオーバーヘッドを回避するために、それらすべてを1つのファイルに圧縮して(多くの画像形式ではサイズの節約は重要ではありませんが)、その方法でアップロードしてみることができます。または、それらをバッチ処理して、たとえば50枚または100枚の写真をzipファイルにまとめます。

于 2012-05-08T09:51:52.753 に答える
0

まず、両方の操作が非同期で実行されていることを確認し、2つの間で何らかのメッセージングを使用することから始めます。したがって、画像が処理されると、アップロードのためにメッセージキューに追加されます。アップロードされると、キューから削除されます。そうすれば、何か問題が発生した場合でも、すべてを再度リロードする必要はありません。これは、バッチアップロードを行う際に発生する問題でもあります。

于 2012-05-08T10:07:15.380 に答える
0

まず、写真のサイズを変更し、写真をまとめてアップロードします。誰も帯域幅を増やすことはできません。さまざまなブラウザの信頼性と一貫性のために、H.264画像圧縮技術を使用できます。

画像圧縮用のH.264

C#Sample1でH.264を実装する方法

C#サンプル2でH.264を実装する方法

于 2012-05-08T09:56:40.957 に答える
0

私は、WANを介して大きなファイルを移動するときに転送速度を最大化するソリューションの実装に取り​​組んできました。WANを介した速度の制限要因は、帯域幅ではなく、遅延とTCPウィンドウサイズであることを考慮に入れてください。多分これはあなたが経験している問題ですか?:ここで説明を参照してください

FTP送信を並行して使用すると、パフォーマンスが向上するはずであり、手動でソリューションを実装する必要はありません。FTPは複数の接続によるファイルの送信をサポートしていますか?

非同期ソケットのプールとカスタムプロトコルを使用して、独自のソリューションを開発しました。FTPと比較して速度は大幅に向上しましたが、簡単な開発ではありませんでした...

于 2012-05-08T10:03:10.453 に答える