2

たとえば4KBのバッファーがあり、JSONのような形式のデータが含まれています。かなり多くの情報(たとえば3倍以上)を追加する必要がありますが、この小さなメモリの塊に収まる必要があります。libZを使用してテキストを圧縮することを考えていましたが、データの大部分がいくつかの一意のサブ文字列で構成されているため、うまく機能しないのではないかと思います。この状況で何をお勧めしますか?ありがとう、クリス

4

2 に答える 2

4

データに表示されると予想される最大32Kの文字列を含む固定辞書について考えてみます。zlibdeflateSetDictionary()を使用inflateSetDictionary()し、両端(それぞれデータの送信者と受信者)で同じディクショナリを使用します。それはあなたが探している圧縮を得るかもしれません。辞書がなければ、このような少量のデータでそのような圧縮を行うことはできません。

于 2012-08-15T01:27:45.387 に答える
0

本当に圧縮を維持したい場合は、データの特定の構造を活用するカスタムディクショナリを使用する圧縮アルゴリズムが最適です。私はSharpZipLibでそのようなものを実装しました。

より多くのデータをバッファに保存したいが、テキストのようなデータの圧縮を使用することに固執しない場合は、Googleのプロトコルバッファなどのバイナリプロトコルを検討してください。

アップデート

@Markの回答は、zlibでカスタム辞書を使用する方法の概要を示しています。

于 2012-08-15T01:28:30.357 に答える