1

サーバーとクライアントアプリケーションで構成されるソリューションがあります。

問題は、ほとんどのユーザーが小さなGPRS接続を介して接続されており、サーバーとのデータの同期がかなり遅いことです。そのため、交換されるデータのサイズを減らす方法をいくつか探しています。

実際、アプリケーションはTextMessageエンコーディングでHTTP接続を使用します。

これをバイナリエンコーディングでエンコードできることを確認しました。これにより、時間を節約できます。また、gzipエンコーダーがあることも確認しました:http://msdn.microsoft.com/en-us/library/ms751458.aspx

サンプルでは、​​textMessage内部エンコーダーがありますが、バイナリ内部エンコーディングを使用しない理由があるのではないかと思いました。

これは、gzipする前にバイナリエンコーディングを行うのは生産的ではありませんか?

4

1 に答える 1

0

これに答えるには、特定のデータを使用してさまざまなオプションのプロファイルを作成する必要があります。たとえば、私はprotobuf-netデータ(無関係のバイナリシリアライザー)で多くの作業を行い、それが圧縮されるかどうかは正確なデータに依存します。データが大量にテキストベースである場合、または繰り返しが多い場合は、バイナリシリアル化の後でも、データは非常によく圧縮される可能性があります。ただし、多くの場合、データをgzipで圧縮しようとすると、データのサイズが大きくなります。

それで; これは非常にデータ固有です。

帯域幅が主な問題である場合は、おそらく次のように言います。WCFやDataContractSerializerなどが役立つことを確認してください。個人的には、もっと小さいもの(jsonまたはprotobuf-netかもしれません)とrawソケットまたは基本的なhttp本体を見ているでしょう。ここでいくつかの帯域幅の比較

于 2012-05-25T07:45:42.593 に答える