4

ファイルの送信と読み取りのために、tcp を介したバイナリ プロトコルに thrift を使用しています (最大サイズは 64MB)。倹約はこれに対応できますか?

私は以下を使用して考えました:

struct SomeMessage {
 1: byte data
}

これについて倹約はどれほど効率的ですか?マーシャリング/アンマーシャリング/ワイヤー経由で送信?

4

1 に答える 1

6

Thrift は可能で、推奨されるデータ型はbinaryです。を使用byteすると、符号付きの 8 ビット数が 1 つしか転送されず、list<byte>効率が大幅に低下します。

問題は、その負荷を Thrift サービスに負担させることに意味があるかどうかです。たとえば、ダウンロードでは、リンクまたは sth を渡すことによって送信を延期する方が理にかなっています。クライアントに似ており、(静的)ファイルが他のメカニズムによって配信されています。ただし、これはシナリオによって異なり、クライアントがデータをサーバーに送信するときに機能しない場合があります。

全体的な効率に関しては、Google コードでいくつかの適切な比較を見つけることができます。繰り返しになりますが、得られるパフォーマンスがニーズに合っているかどうかは、問題と直面している制限によって異なります。これに関する有限の答えはありません。

于 2014-04-20T23:46:34.350 に答える