To introduce the encoding and decoding process, we describe how a trivial message with only 1 field would be FAST encoded and decoded. Input Message Here's the message we'll start with: The SOH (ASCII 1) is the FIX separator byte. The Template This message requires a very simple template (expressed in XML and described in greater detail in...
出版物のソースは更新されていますか?
、データを高密度にパックし、株のように高速で受け渡すことができます。
、データを高密度にパックし、高速なストック型で転送する。
たとえば、4バイトのint = 32ビット。
変数が値=1を持っているとします。これは、プロトコルが32(00000000000000000001)ではなく、1ビット(=1)だけを送信することを意味します。
一般的に、データのビット表現はトラフィックを大幅に削減する。
----
バイブルは、送信された構造体をこのようなビット形式にパックし、それを読み返す(またはパックされた構造体から必要なデータを返す)ことができるはずである。
ファストにはもちろん他の機能もあるが、このパック機能だけが興味深い。
こんな感じ?各要素が高速ビットに対応するuchar配列だ。
わかったような気がする。ある型の配列があり、それが高速ビットからuchar配列に変換される。
例えば、配列{1,2,4}→配列{7}。もちろん逆変換も。
こんな感じ?各要素が高速ビットに対応するuchar配列だ。
わかったような気がする。ある型の配列があり、それが高速ビットからuchar配列に変換される。
例えば、配列{1,2,4}→配列{7}。もちろん逆変換も。
{
int type;
long time;
}
allow type=10, time=1486758079
byte representation will be
00000000 00000000 00001010 |.00000000 00000000 00000000 00000000 01011000 10011110 00100000 10111111
と同じくらい速く(大げさ)
00001010 | 01011000 10011110 00100000 10111111
合計5バイトになる。2倍の節約になる。
(データを区切るストップ・ビットがあるはずだが、大まかな考え方はわかるだろう)。
struct { int type; long time; } allow type=10, time=1486758079 byte representation will be 00000000 00000000 00001010 | となる。00000000 00000000 00000000 00000000 00000000 01011000 10011110 00100000 10111111 、高速な(誇張された) 00001010 | 01011000 10011110 00100000 10111111(データを区切るストップ・ビットがあるべきだが、一般的には本質が示されている)という形になる。
00001010 | 01011000 10011110 00100000 10111111
合計5バイト。2倍の節約だ。
(データを区切るストップ・ビットは まだあるはず だが、大まかな考え方はわかるだろう)。
何がそのような仕切りになるのかは明らかではない。
http://www.jettekfix.com/node/36
私の理解が正しければ、各バイトの8ビット目をセパレータにすることが提案されている。