問題タブ [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.
performance - TCP ACK を使用してサーバーへの遅延を測定しますか?
私が制御していないサーバーへの遅延を測定しようとしています。これはコロケーション環境にあるため、遅延は 500 マイクロ秒 (0.5 ミリ秒) 程度です。
Cisco の機器が頻繁に ICMP トラフィックの優先順位を下げ、ping 時間を信頼できないものにしていることを理解しています。これがトラバースしているギアに当てはまるかどうかを確認する方法はありますか?
TCP 確認応答を使用して、リモート サーバーへの最小待ち時間を決定できますか? これを行うには、データを受信したらすぐにリモート サーバーに強制的に TCP ack を送信させる必要があります。
macos - QuickTime ストリーミング ビデオの遅延をなくすにはどうすればよいですか
私は、クイックタイム クライアントを介して HaiVision Barracuda からのストリーミング ビデオを表示するクライアントのプロトタイプを作成しています。バッファ サイズを 3.0 秒未満に減らすことができませんでした... このアプリケーションでは、ネットワークが許す限りレイテンシを低くする必要があり、遅延よりもビデオ ドロップアウトを優先します。私は次のことをしています:
ComponentResult と OSErr の両方が -50 を返していますが、QTSPres まで有効なオブジェクト/構造を取得しているようです。ストリーミング ビデオは正常に再生されますが、バッファはまだ 3.0 秒です。ヘルプ/洞察をいただければ幸いです。
J
router - ネットワークの帯域幅が異なる場合のルーターの遅延
質問があります。ルーターの片側 (サイド A) に 4M ビット接続があり、反対側 (サイド B) に 1 ギガビット接続があります。1500 バイトのパケットがサイド A に着信するとします。ルーターは、サイド A でパケットのすべて (1500 バイトすべて) を受信してからサイド B に転送するまで待ちますか、それともチャンクで送信しますか?
質問が基本的すぎる場合は申し訳ありませんが、この質問に対する適切な回答が見つかりませんでした。
web-applications - Webアプリケーションでの低遅延の双方向通信のためのJava/フラッシュの代替?
レイテンシーの低いWebアプリ(ゲームなど)を設計したいと思います。ajaxのヘッダーがレイテンシーを追加すると思います。私が本当に望んでいるのは、接続が切断されることはなく、クライアントとサーバーの両方がデータを互いにすぐにプッシュできるプロトコルです。(したがって、通信は片側しかないため、彗星は実際には選択できません)。データをバイナリとして送信して圧縮する方がよいでしょう。
編集:私のプラットフォームはipad / iphoneであり、java / flash / silverlightをサポートしていないため、java / flash/silverlightの代替が必要です
java / flash / silverlightである/必要なものは推奨しないでください、ありがとうございます
java - 別のスレッドで有益に実行される作業の最小サイズは?
UDPメッセージを受信する低遅延システムがあります。メッセージに応じて、システムは0〜5個のメッセージを送信して応答します。考えられる各応答を把握するには50us(マイクロ秒)かかるため、5つの応答を送信する必要がある場合は250usかかります。
考えられる各応答が異なるスレッドによって計算されるようにシステムを分割することを検討していますが、それを改善するために必要な最小の「作業時間」について知りたいです。確かにこれをベンチマークする必要があることはわかっていますが、別のスレッドで実行する必要のある最小限の作業についての意見に興味があります。
50 usの作業を行うためのシグナルを待機しているスレッドが5つあり、それらがあまり競合しない場合、5つすべてが完了するまでの合計時間は250 usより多いですか、それとも少ないですか?
performance - さまざまなキャッシュとメインメモリにアクセスするためのおおよそのコストは?
L1、L2、L3キャッシュ、およびIntel i7プロセッサのメインメモリにアクセスするためのおおよその時間(ナノ秒単位)を教えてもらえますか?
これは特にプログラミングの問題ではありませんが、これらの種類の速度の詳細を知ることは、いくつかの低遅延プログラミングの課題に必要です。
networking - 低遅延ネットワーキングの提案 (s/w および h/w)
ネットワーク遅延の問題を調査する際に SO の仲間が利用するさまざまなテクニック、ヒント、トリック、銀の弾丸、および組み込まれているさまざまなソリューションと最適化について疑問に思っています。
ソフトウェアとハードウェアの両方に適用できるソリューションを探しています。
例えば:
- ソケット バッファ サイズを増やす
- リアクター パターンに OS の最適なオプションを使用します (選択が常に最適なオプションであるとは限りません)
- bigfoot Killer 2100 などの極端な NIC の使用
- ネットワーク ケーブルはできるだけ短くし、ネットワーク ケーブル同士を束ねないでください。
- 2 つのポイント間で大量のデータをコピーする場合 - 往復の遅延を考慮し、複数のソケット接続を使用してリンクを完全に飽和させます
他の提案は何ですか?
c# - レイテンシが重要な高速な C++/Java/C# コードの書き方を学習する最良の方法は?
非常に低遅延のプログラミングを行う方法を学ぶための最良の方法について、誰かが私にいくつかの指針を与えることができますか? 私は多くのプログラミング本を持っていますが、非常に高速なコードの記述に焦点を当てた (または支援した) 本は見たことがありません。それとも、本は前進するための最良の方法ではありませんか?
専門家からのアドバイスは本当にありがたいです!
編集:私はCPU /メモリバウンドについてもっと言及していると思います。
c++ - 32ビット整数をディスクに保存する絶対最速の方法は?
整数を順次生成する非常にレイテンシーの影響を受けやすいルーチンがありますが、クラッシュまたは再起動の場合に備えて、最後に生成されたものをディスクに保存する必要があります。
現在、ファイルの先頭にシークしてから整数を書き出し、新しい int が生成されるたびにフラッシュしています。書き込みが少なくともバッテリーでバックアップされたコントローラーキャッシュにヒットするように、フラッシュが必要です。
シークは非常にコストがかかるため、4 バイトを追加するだけで回復が必要な場合は、最後までシークして最後の 4 バイトを読み取ることを考えていました。この前のステートメントは明らかに、他のディスク アクティビティがあまり発生していないことを前提としているため、書き込みヘッドは理想的にはファイルの最後に留まる必要があります。
通常、数値は 10,000,000 を超えることはないため、40MB はそれほど悪くありません。
整合性を犠牲にすることなく最小のレイテンシーを達成する方法に関するアドバイスはありますか?
Linux 2.6 以降の C または C++
c++ - 構造体タイプを指定して特定のcharバッファを返す絶対最速の(そしてうまくいけばエレガントな)方法
何よりもまず、ここではパフォーマンスが最も重要なので、マップが機能するとは思えません。私は次のような構造体のリストを持っています(そのうちの約16個)
それぞれが異なり、それぞれが異なるサイズです。
私は私たちが次の線に沿って何かをすることができるかもしれないエレガントな方法を疑問に思っています:
次に、構造体Aを使用している場合は、BufferAを返すメソッドまたはマッピングを記述します。速度は間違いなく最も重要です。テンプレートを使用すると役立つと思いますが、全体をテンプレート化できるかどうかはわかりません。
更新***明確になっていないことをお詫び申し上げます。バッファはすべて事前に割り当てられています。構造体タイプを指定して適切なバッファを取得するための非常に高速な方法が必要です。
アップデート2***指定しなくて申し訳ありませんが、ここではアライメントが重要な特性であり、実際には各構造体を#pragma pack(push、1)でバイトアライメントします。