問題タブ [flow-control]
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.
ssh - tmux フロー制御
Ubuntu 12.04 を実行し、ADSL リンク (8Mbps/1Mbps ダウン/アップ) で tmux 1.6 を使用しているマシンに ssh 接続しています。
高速な端末出力が大量にある場合、リンクが飽和して完全に応答しなくなり、tmux ウィンドウなどを切り替えることができず、ssh を強制終了する必要があります。
これを防ぐtmux設定はありますか?いくつかのパッチを見てきましたが、それらが何をするのかは明確ではありません。
embedded - ハードウェア フロー制御を使用するように minicom を構成する
OMAP L138のハードウェア フロー制御を使用して UART 実装をテストするための支援を探しています。シリアル リンクのもう一方の端をエミュレートするために使用する実装をテストするためにminicom
、どのように構成する必要があるかについての洞察を探しています。
OMAP から minicom に UART 経由でメッセージを送信する単純なアプリケーションがあります。これは、OMAP と minicom の両方がハードウェア フロー制御を使用しないように構成されている場合、期待どおりに機能します。ハードウェア フロー制御をオンにすると、minicom に出力が表示されません。
これが私が従ったステップのリストです:
- ハードウェア フロー制御を使用するように minicom を構成しました (Ctl AO で minicom シリアル ポート セットアップ メニューを開き、F でハードウェア フロー制御を有効にします)。
- を使用し
stty
て、rts/cts ハンドシェイクを有効にしstty -F /dev/ttyS1 crtscts
ます。コマンドstty -F /dev/ttyS1 -a
を使用して、crtscts が有効になっていることを確認できます。
上記の 2 つの変更により、端末プログラムと UART ドライバーでハードウェア フロー制御が有効になります。OMAP の UART も、ハードウェア フロー制御を使用するように構成されています。
ただし、上記の minicom への変更は、フロー制御を正しく機能させるには十分ではないようです。アプリケーションの起動後、OMAP からの RTS (送信要求) 信号が低くなり、minicom にデータを送信したいことを示します。適切に構成されている場合、minicom は OMAP の CTS (送信可) 信号を低くして、指定された受信バッファーのしきい値に達するまでデータの受け入れを開始する必要があります。これは起こりません。OMAP への CTS 入力は常にハイです。念のため、OMAP で RTS を CTS にショートさせてみましたが、予想通りのメッセージが minicom に表示されます! これは、2 つがどのように接続されているかを示すイメージです。
私が試したことから、minicom の設定方法に何かが欠けているようです。任意の提案をいただければ幸いです。
asynchronous - Erlang でメモリ バウンド メッセージ キューを作成するにはどうすればよいですか?
非同期メッセージの速度が必要ですが、まだフロー制御が必要です。Erlangでこれを達成するにはどうすればよいですか?
python - pyserial で xonxoff-flow コントロールを使用する
私は現在、フロー制御の2つの可能な方法を提供する、やや古いモデルのHPプリンターとのインターフェースを試みています。フロー制御をまったく行わないか、ソフトウェアベースのフロー制御(XON/XOFF)です。
次のコマンドで pySerial を初期化し、データをポートに書き込むために単純な大きな文字列を並べるだけです。
これは問題なく動作しますが、問題があります。フロー制御が完全に無視され、データが送受信されているように見えます。その結果、デバイスで IO バッファ オーバーフローが発生し、動作が停止します。
私が最初に考えたのは、serial.write('unbelivable long string') を使用すると、pySerial が送信を停止できない可能性があるため、文字列をチャンクに分割して送信したことです。
うーん...これもうまくいきません。
したがって、基本的には、ボーレートを低いものに変更して、デバイスが送信よりも高速になるようにするか、いくつかのチャンクごとにスリープのようなものを追加することができます...しかし、これはそうすべきではないと思います.
だから...誰か私に説明してください、私は何を間違っていますか? ;-)
ありがとう、
マーティン
c# - Windows (できれば C#) - ソケットからデータを十分に読み取っていないことを確認する方法
ソケットから十分な速さでデータを読み取っていない場合、TCP プロトコルはスライディング ウィンドウのサイズを小さくし、送信中に送信者がブロックされる可能性があります (ここで説明したように、'recv' を十分に速く呼び出せない場合はどうなりますか? )。
Windows のレシーバー側でこの状況を検出するにはどうすればよいですか? ソケットからの読み取りのパフォーマンスに影響を与えることなく、できれば C# コードで直接検出できますか? 他の監視ソリューション (perfmon、wireshark) も許容されますが、私のシナリオには最適ではありません。
正確なシナリオは何ですか?サーバー アプリは最大 1Mbps の速度でデータを送信できるとしますが、クライアント アプリは 0.5Mbps の速度でしかデータを受信できません。クライアント アプリケーションで、TCP フロー制御が開始されて送信速度が低下していることを確認するにはどうすればよいですか?
私は Socket.Available プロパティhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.available.aspxに来て、それがこの情報を照会するための推奨される方法であるかどうか疑問に思っていましたか?
javascript - DOM操作が順番に実行されない
私がまとめた次の例で何が起こっているかの背後にある解決策、または単に「ボンネットの下」の理論さえ探しています。
DOM の操作はノンブロッキング方式で行われているようです。つまり、DOM ステートメントの実行を待機するフロー制御はありません。
この例では: http://jsfiddle.net/qHVJX/
onclick イベントの後に 2 つのステートメントが実行されます。
テキストを左から右にシフト
/li>実行を停止するために一連の時間をループします。
/li>
各ステートメントの実行中にフロー制御がブロックされた場合、予想どおり、テキストは左から右にシフトし、ループからの短い一時停止が続きます。代わりに、ループの反復後にテキスト シフトが発生します。
これは、ループが優先的に実行される間、className ステートメントがキューに入れられることを示唆しています。
この例では: http://jsfiddle.net/qHVJX/1/
onclick イベントの後に 3 つのステートメントが実行されます。
テキストを左から右にシフト
/li>実行を停止するために一連の時間をループします。
/li>テキストを右から左にシフトします。
/li>
繰り返しになりますが、各ステートメントの実行中にフロー制御がブロックされた場合、予想どおり、テキストは左から右にシフトし、ループが繰り返される間に短い一時停止が続き、その後テキストが右から左にシフトします。
代わりに、ループが実行され、テキストが左から右、右から左に再描画されることはありません。これは競合状態を示しています。
ただし、setTimeout() は、DOM ステートメントが処理を実行し、キューに入れられるのを回避するのに十分な時間、実行を停止することができます。各ステートメントにかかる時間を知る方法はありません。間隔が短く設定されていると、目的の結果が得られません。間隔を必要以上に長く設定すると、パフォーマンスが低下します。
setTimeout() のオーバーヘッドなしで DOM 操作中に実行をブロックする方法はありますか? おそらくある種のコールバックルーチン?
どんな洞察も大歓迎です。ありがとう。
jmeter - JMeter で http リクエストの速度 (またはフロー制御) を制限する方法
JMeter を使用していくつかの http URL にアクセスするエンド ユーザーをシミュレートしたいと考えています。フロー制御のように、http リクエストごとに接続速度を制限することはできますか? 各httpリクエストに対して1M bpsの最大速度でレスポンスを取得するようにJMeterを制限すると言います。
networking - スライディング ウィンドウと輻輳ウィンドウの違い
フロー制御のスライディング ウィンドウと輻輳制御の輻輳ウィンドウの違いと接続は何ですか?
どちらも送信用の制御サイズだと思いますが、違いは何ですか?フロー制御と輻輳制御の違いもよくわかりません。