問題タブ [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.
iphone - iPhone ARMv6 VFP asm のレイテンシ、スループット、およびハザード
このドキュメント: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301g/DDI0301G_arm1176jzfs_r0p7_trm.pdf
21-25 ページ (pdf ページ 875) では、VFP ユニットの組み立て手順のスループットとレイテンシのタイミングが示されています。
これらの数値は vectorsize に依存していませんか?
1: スループットが 1 でレイテンシが 8 の FMULS を考えてみましょう。前の関数で現在計算されていないレジスタを使用しない場合、各サイクルで新しい FMULS 操作を開始できるということですか? 例えば:
それらは次々に実行されますか?
2: 1 つの引数が前の計算に依存する 2 つの FMULS 関数が前後にある場合はどうなりますか?
VFP は 2 番目の命令の処理を開始する前に 8 サイクル待機しますか?
3: 4 つの要素を持つ vectormode で、2 番目の FMULS 命令で 1 つを除くすべての入力レジスタが使用可能であるとします。何が起こるか?
4: sqrt と除算: sqrt または除算演算は、19 サイクルの間、後続の演算の開始を妨げますか?
ありがとう!
java - スケーラブルなWebサービスを設計するためのパターン
大量のリクエスト/秒を処理する必要があるJavaでWebサービスを作成しています。一般的なフローは次のようになります。
- Webサービスがクライアントからリクエストを受信する
- クライアントに「ポーリングを続ける」応答を返します
- 別のWebサービス(または複数のサービス)を呼び出し、それらが応答するのを待ちます(タイムアウト付き)
- クライアントは、応答を受信するまで(タイムアウト付き)、Webサービスをポーリングします
インターネットで調べてみると、Webサービスを作成するための2つの一般的なアプローチが見つかりました。
- リクエストごとにスレッドを生成します
- Reactorパターンを使用します(中央ディスパッチャースレッドはIOイベントに応答します)
どのアプローチが一般的に優れているかについての推奨事項はありますか?また、各アプローチの長所/短所は何ですか?例へのポインタもいただければ幸いです。
iphone - iPhone mmorpg での高レイテンシー
現在、iPhone 用の mmorpg を作成しようとしています。iPhone がプレーヤーの位置を 1 秒間に数回要求するように設定しました。これを行う方法は、クライアントが非同期 NSURLConnection を使用して、mysql データベースから位置をロードし、それを json で返す php ページにリクエストを送信することです。ただし、位置が要求されてから実際に読み込まれるまでに約 0.5 秒かかります。これは非常に高いように思えますが、これを引き起こす可能性のある明らかな要因はありますか?
また、これにより、クライアントでのプレーヤーの動きも非常に不安定になります。プレイヤーの動きのぎこちなさを軽減するアルゴリズムや方法はありますか?
c - (方法)ソケットの待ち時間を短縮できますか?
ここでは関係のないことを行うHTTPプロキシを作成しましたが、クライアントのサービス提供時間が大幅に増加しています(プロキシなしで600us、プロキシありで60000us)。私は、その時間の大部分がどこから来ているのかを見つけたと思います-プロキシがクライアントに送り返しを終えてからクライアントがそれを受け取り終えるまでの間。今のところ、サーバー、プロキシ、クライアントは同じホスト上で実行されており、アドレスとしてlocalhostを使用しています。
プロキシが送信を終了したら(少なくともsend()から戻ったら)、絶対時間を与えるgettimeofdayの結果を出力します。クライアントが受信すると、gettimeofdayの結果が出力されます。両方とも同じホスト上にあるため、これは正確である必要があります。すべてのsend()呼び出しにはフラグがないため、ブロックされています。2つの違いは約40000usです。
クライアント接続をリッスンするプロキシのソケットは、ヒントAF_UNSPEC、SOCK_STREAM、およびAI_PASSIVEで設定されます。おそらく、accept()からのソケットは同じパラメーターを持ちますか?
私がこれらすべてを正しく理解している場合、Apacheは600usですべてを実行できます(この40000usの遅延を引き起こしているものと同等のものを含む)。誰かがこれを引き起こしている可能性があるものを提案できますか?TCP_NODELAYオプションを設定してみましたが(違いがあったかどうかを確認するだけです)、送信の終了と受信の終了の間の遅延がすぐに減少しました。数を忘れましたが、1000us未満です。
これはすべてUbuntuLinux2.6.31-19にあります。助けてくれてありがとう
linux - Linux マルチキャストでキューイング/バッファリングの遅延が発生する可能性のある場所はどこですか?
LAN 上の多くの Linux サーバー間でマルチキャスト メッセージングを多用しています。多くの遅延が発生しています。私たちは基本的に膨大な数の小さな荷物を送ります。スループットよりもレイテンシに関心があります。マシンはすべて最新のマルチコア (ハイパースレッディングを含めると少なくとも 4 つ、通常は 8 つ、16 つ) のマシンであり、負荷は常に 2.0 以下で、通常は 1.0 未満です。ネットワーク ハードウェアの容量も 50% 未満です。
私たちが目にする遅延は、キューイング遅延のように見えます。パケットは、ジャムしたように見えるまでレイテンシーが急速に増加し始め、その後、通常に戻ります。
メッセージング構造は基本的に次のとおりです。「送信スレッド」で、キューからメッセージを取得し、( を使用してgettimeofday()
) タイムスタンプを追加してから、 を呼び出しますsend()
。受信プログラムはメッセージを受信し、受信時刻にタイムスタンプを付けて、キューにプッシュします。別のスレッドでキューが処理され、送信タイムスタンプと受信タイムスタンプの違いが分析されます。(タイムスタンプは内部キューの外部に追加されるため、内部キューは問題の一部ではないことに注意してください。)
この問題に対する答えをどこから探し始めればよいのか、私たちは本当に知りません。私たちは Linux の内部構造に精通していません。私たちは、カーネルが送信側または受信側 (またはその両方) でパケットをキューイングまたはバッファリングしていると考えています。しかし、これを追跡して追跡する方法はわかりません。
価値のあるものとして、CentOS 4.x (RHEL カーネル 2.6.9) を使用しています。
c# - TcpClientの作成には多くのオーバーヘッドがありますか?
TcpClientを使ってデータの送受信を試みました。私は2つの実験を行い、何か面白いものを見つけました。
日本のサーバーにTcpListenerをセットアップし、英国のサーバーにTcpClientをセットアップしました。TcpListenerに500バイトを送信し続け、TcpListenerが10KBをTcpClientに送り返すとき。この送信/受信ループを各実験で500回維持しました。
実験1:
すべての送受信ループで、新しいTcpClientを作成し(作成直前から時間が刻みます)、送受信します
実験2:
すべてのループで、TcpClientは1つしかなく、TcpListenerとの接続を維持し、500回の送受信を行います。
結果:
1つのループの時間コストの平均値:
E1:1.8秒、E2:0.49秒。
私はこの結果に非常に驚いています。したがって、一定の送受信のために接続を維持することで、多くの時間を節約できますか?ほぼ2/3の時間。
これは本当ですか???
ありがとう
====新しい====
@ Jon Skeet、@ dbemerlin、返信ありがとうございます。Tcpハンドシェイクには時間がかかると思います。
だから私は実験3をしました。
サーバーとしてHttpListenerを設定し、WebClientを使用して送受信します。データサイズはまったく同じです。そして、新しいWebClientを使用して、英国と日本の間で送受信するたびに。
結果は0.86です(500回のループの平均、つまり送信/受信)。
WebClient / HttpLisener自体はTcpだと思いますよね?私の実験では、生のTcpClient / TcpListenerよりもどのように高速になりますか?
再度、感謝します
java - レストレットベースのWebサービスで応答時間を記録する
レストレットベースのWebサービスの応答時間を記録する最も簡単な方法は何ですか?
Webサービスの応答時間が妥当であることを確認したいと思います。ですから、応答時間に注意を払い、時間がかかりすぎるリクエストに対して何かをしたいと思っています。
私が見つけた最も近いものはこのレシピです:http://www.naviquan.com/blog/restlet-cookbook-log、それはログフォーマットを変更する方法を説明します。しかし、応答時間のパラメーターはないように思われるため、おそらく完全に異なるアプローチが必要です。
javascript - SoundManager2 のレイテンシーが不規則です
私は一定の間隔でいくつかの音符を演奏しています。それぞれがランダムなミリ秒単位で遅延し、耳障りな不規則な効果を生み出します。どうすれば修正できますか?
注: 一貫性がある限り、多少の遅延は問題ありません。
「タイミングに敏感な再生用に最適化された、独自の小さなSoundManager2の代替品を実装する」タイプの回答は問題ありません.
可聴遅延がゼロのアプリの例については、フラッシュベースのToneMatrixを参照してください。
テストケース (ここで実際に見るか、zip で入手してください):
optimization - パケットが北大西洋上/下を移動するための理論上の最小往復時間は?
低遅延アプリケーションのパフォーマンス チューニングとキャパシティ プランニングを行っていますが、次の質問があります。
光ファイバーを介して接続されたロンドンのホストとニューヨークのホストの間で送信されるパケットの理論上の最小往復時間は?
python - REST API 経由で送信されるデータのレイテンシを短縮する方法
他のサーバーの 1 つから JSON 形式でデータを取得するアプリケーションがあります。私が直面している問題は、この情報を要求するときに大幅な遅延があることです。大量のデータが渡されるため (各レコードがかなり巨大な要求ごとに約 1000 レコード)、圧縮によって速度が低下する可能性があります。もしそうなら、どの圧縮スキームをお勧めしますか?
別のスレッドで、データのパターンも、使用する必要がある圧縮のタイプに大きく影響することを読みました。データのパターンは一貫しており、次のようになります
この遅延をどのように減らすことができるかについて、誰かが解決策を推奨できますか? それらの遅延は約 6 ~ 8 秒です。このアプリケーションの開発には Ruby on Rails を使用しており、データを提供するサーバーはほとんどの部分で Python を使用しています。