問題タブ [low-latency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
low-latency - 今日の最先端の HFT 取引システムはどのくらいの速さですか?
高頻度取引 (HFT) とそのアルゴリズムの速さについてよく耳にします。しかし、私は疑問に思っています - 最近何が速いのですか?
アップデート
取引所と取引アプリケーションを実行しているサーバーとの間の物理的な距離によって引き起こされるレイテンシーについては考えていませんが、プログラム自体によってもたらされるレイテンシーについては考えていません。
より具体的には、イベントがアプリケーションに送信されてから、そのアプリケーションが注文/価格を送信するまでの時間は? つまり、ティックからトレードまでの時間です。
サブミリ秒の話ですか?それともサブマイクロ秒?
人々はどのようにしてこれらのレイテンシーを達成するのでしょうか? アセンブリでコーディング?FPGA? 古き良き C++ コード?
アップデート
最近、ACM に関する興味深い記事が公開され、今日の HFT テクノロジについて多くの詳細が説明されています。
memory-management - 低遅延環境で再割り当てを回避するにはどうすればよいですか?
取引プラットフォーム (低遅延環境) のオーダーブックでは、少なくともすべての注文が一意であることを確認するために、すべての注文 ID を保存する必要があります。取引日に受け取ることができる注文 ID の数は無制限です。履歴データ分析を使用する以外に、データ構造を事前に割り当てるために適切に「推測」できる数はありません。日中のオーダー ID コンテナーの再割り当てを回避するために、どのようなスキームが存在しますか?
ios - Django バックエンドおよび iOS/モバイル クライアント用の HTTP Rest の代替手段はありますか?
現在、iOS やその他のモバイル クライアントで頻繁に使用される Django ベースのバックエンドを作成しています。
HTTP REST API を提供するために django-rest-framework を使用しています。
この API は、製品のリストのダウンロード、在庫レベルのチェック、カートと支払い、およびクライアントからの分析データの返送に使用されます。可能であれば、クライアント間で製品と在庫レベルをリアルタイムで、または可能な限りリアルタイムに近い状態で同期したいと考えています。
私たちの API の使用法はかなりおしゃべりであると予想しています。
興味があります-HTTP REST以外に、リアルタイム同期を適切に処理し、モバイルデバイス(その多くは3Gになる可能性があります-したがって、帯域幅と遅延の両方)に対して適切に機能するトランスポートには、他にどのような選択肢がありますか問題になる可能性があります)。
この状況では何が機能しますか?また、どのような問題や落とし穴に遭遇する可能性がありますか?
(例: ZeroMQ? Protobuf?)
乾杯、ビクター
amazon-ec2 - クライアントで DynamoDB のパフォーマンスを向上させる方法は?
私は DynamoDB 用に Amazon Java SDK クライアントを使用しており、レイテンシーは最小で約 100 ミリ秒、GetItem で平均 256 ミリ秒です。クラウドウォッチでは、約 8 ~ 10 ミリ秒です。
一部のキャッシュにあることを期待して、スレッドローカルで各スレッドに対して新しい AmazonDynamoDBClient を開始しようとしました。BasicAWSCredentials ホッピング トークン セキュリティ チェックから STSSessionCredentialsProvider に切り替えようとしました。それでも、EC2 インスタンスとオフィスの両方で非常に高いレイテンシーが発生します。
クライアントでこのような遅延が発生する原因は何ですか?
performance - データの低遅延アクセスとは?
データへの低遅延アクセスとはどういう意味ですか?
私は実際に用語の定義について混乱しています。"LATENCY"
どなたか「レイテンシ」という用語について詳しく教えてください。
c++ - hashtable / unordered_map に関するいくつかの質問
私は、常に非常に効率的である必要がある低遅延アプリケーションに取り組んでいます。
文字列に基づいてインデックスを検索する必要があるため、c++ unordered_map を使用しています。制約: -挿入と検索のみ、削除なし -キーは文字列、値は int -unordered_map に追加されるエントリは 100 万を超えないことを期待
unordered_map の予約を 100 万に設定しています。これは良いことですか、それとも、再ハッシュを避けるために予想されるエントリよりも数 % 多めに予約する必要がありますか? 100 万に設定できますか、それとも 100 万または 2 乗に近い大きな素数に設定する必要がありますか。
私は、たまたまmurmur2であるc ++ std libでデフォルトの文字列ハッシュ関数を使用しています。私のキーは 25 から 50 文字で、すべて数字、大文字の英語のアルファベット、および _ 文字を含む一意のキーです。このハッシュ関数は、キーを均等に配布するのに十分でしょうか?それとも unordered_map により良いハッシュ関数を提供する必要がありますか?
unordered_map は、100 万個のキー、値のペア、およびサイズ 100 万の配列に領域を割り当てますか?
挿入時にヒープにキーと値のペアを動的に割り当てると、どの程度のドラッグになりますか? 特に、これは多くのエントリを持つ大きなハッシュ テーブルであるためです。
パフォーマンス上の理由から、スタック上または初期化中に 100 万エントリに事前に割り当てられたメモリを使用して、独自のハッシュ テーブルを実装することをお勧めしますか、または上記の unordered_map の最適化は十分に近いですか?
挿入時の動的割り当てを回避するために、事前に unorderd_map の予想されるエントリ数に対してメモリを割り当てる方法はありますか?