時々接続されるクライアント アプリケーションのサーバーからファイルを同期するアプリケーションで 、#ziplib (ここにあります) を使用しています。
私の質問は、このアルゴリズムでは、ファイルの実際の圧縮を行うために実行時間を費やす価値があるのはいつですか? おそらく、小さなテキスト ファイルが 1 つだけ同期されている場合、圧縮にかかる時間は転送のサイズを十分に縮小せず、実際にはプロセス全体の速度を低下させます。
圧縮時間プロファイルは、ファイルの数、ファイルの種類、およびそれらのファイルのサイズに基づいて変化するため、いつファイルを圧縮する必要があり、いつそれらをそのまま渡す必要があるかをプログラムで発見する良い方法はありますか? ? 私たちのアプリケーションでは、写真の種類とサイズが変わる可能性がありますが、ほとんどの場合、ファイルは写真になります。
私はまだ実際のファイル転送ロジックを書いていませんが、System.Net.WebClient
これを行うために使用することを期待していますが、実行時間を節約するための代替手段にもオープンです。
更新: この議論が発展するにつれて、「圧縮するか、圧縮しないか」は間違った質問ですか? System.Net.WebClient
古い方法を圧縮された WCF トラフィックまたは類似のものに置き換えることに焦点を当てる必要がありますか? このユーティリティのデータベース同期部分では、Microsoft Synchronization Framework と WCF が既に使用されているため、私はそれを受け入れます。ネットワーク トラフィックを制限するために今できることは、クライアントにとって非常に大きなものになるでしょう。