-2

当社の HFT 取引アプリケーションは Java で開発されています。8 バイトを double の数値に変換する必要がありますが、変換は非常に高速でなければなりません。レイテンシーは 15 マイクロ秒未満であるため、従来の Java アプローチはおそらく機能しないことを覚えておいてください。どんな提案も役に立ちます。前もって感謝します

[編集]

byetbuffer、nio クラス、回転アプローチ (シフトを使用) など、いくつかのアプローチに既に取り組んできました。これらの形式の変換を使用するとコストがかかり (スタンドアロンの方が高速に見えるかもしれませんが)、アプリケーションに遅延が発生します。私は、さまざまな形式 (int、double、float など) でバイトを使用した経験があるかもしれない、すぐに使えるアイデア (および Java によって提供される API に限定されない) を探しています。その方向への考えは、おそらく double 値をキャッシュし、受信したバイトと比較して、変換する必要をなくすことです。

4

1 に答える 1

1

おそらく、IO に java.nio を使用したいと思うでしょう。その場合、必要なことを達成するために ByteBuffer と DoubleBuffer の間で変換できます。これは、自分で変換のロジックをいじるよりもはるかに高速です。

次のように簡単です。

ByteBuffer buffer.allocateDirect(<size>);
... add to the buffer ...
DoubleBuffer db = buffer.asDoubleBuffer();

出来上がり。

于 2015-01-07T07:14:21.927 に答える