ファイルの送信と読み取りのために、tcp を介したバイナリ プロトコルに thrift を使用しています (最大サイズは 64MB)。倹約はこれに対応できますか?
私は以下を使用して考えました:
struct SomeMessage {
1: byte data
}
これについて倹約はどれほど効率的ですか?マーシャリング/アンマーシャリング/ワイヤー経由で送信?
ファイルの送信と読み取りのために、tcp を介したバイナリ プロトコルに thrift を使用しています (最大サイズは 64MB)。倹約はこれに対応できますか?
私は以下を使用して考えました:
struct SomeMessage {
1: byte data
}
これについて倹約はどれほど効率的ですか?マーシャリング/アンマーシャリング/ワイヤー経由で送信?
Thrift は可能で、推奨されるデータ型はbinary
です。を使用byte
すると、符号付きの 8 ビット数が 1 つしか転送されず、list<byte>
効率が大幅に低下します。
問題は、その負荷を Thrift サービスに負担させることに意味があるかどうかです。たとえば、ダウンロードでは、リンクまたは sth を渡すことによって送信を延期する方が理にかなっています。クライアントに似ており、(静的)ファイルが他のメカニズムによって配信されています。ただし、これはシナリオによって異なり、クライアントがデータをサーバーに送信するときに機能しない場合があります。
全体的な効率に関しては、Google コードでいくつかの適切な比較を見つけることができます。繰り返しになりますが、得られるパフォーマンスがニーズに合っているかどうかは、問題と直面している制限によって異なります。これに関する有限の答えはありません。