問題タブ [buffering]
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.
cgi - バッファリングされていない Web ブラウザの出力を取得することは可能ですか?
Nagios の構成ファイルを取得して検証する小さな cgi スクリプトがあります。通常の実行時間は数分で、実行中にブラウザーでフィードバックを取得したいと考えています。
私が何をしたいのかを説明するために、これを考慮してください:
このスクリプトで telnet または wget を使用して GET を実行すると、出力は一度に 1 行ずつ、10 秒間隔 ("A"... "B"... "C"... など) で表示されます。 .
一般的なブラウザで開こうとすると、ブラウザはすべてをバッファリングし、スクリプトが完了すると出力を表示するようです (50 秒間の無音... "ABCDE")。
データが到着したらすぐにブラウザに表示させることはできますか?
c - 標準出力をメモリにバッファリングし、専用スレッドから書き込む方法
多くのワーカー スレッドを持つ C アプリケーションがあります。これらがブロックされないようにすることが不可欠です。そのため、ワーカー スレッドがディスク上のファイルに書き込む必要がある場合は、メモリ内の循環バッファーに書き込むようにし、そのバッファーをディスクに書き込むための専用スレッドを用意します。
ワーカー スレッドはブロックしなくなります。専用スレッドは、ワーカー スレッドに影響を与えることなく、ディスクへの書き込み中に安全にブロックできます (ディスクへの書き込み中にロックを保持しません)。メモリ バッファは、ライター スレッドが維持できる十分な大きさになるように調整されています。
これはすべてうまくいきます。私の質問は、標準出力に似たものをどのように実装するのですか?
printf() をマクロ化してメモリ バッファーに書き込むことはできますが、stdout に書き込む可能性のあるすべてのコードを制御することはできません (一部はサードパーティ ライブラリにあります)。
考え?ニックB
perl - Perl の $| 設定はシステムコマンドに影響しますか?
著者が
$| = 1
最初の行に書いた Perl の古いコードを見ています。
ただし、コードには print ステートメントがなく、system
コマンドを使用して C++ バイナリを呼び出します。今、私はそれ$|
がすべての印刷後に強制的にフラッシュされることを読みました。それで、システムコマンドの出力に何らかの影響を与えますか、それともその行を削除しても安全ですか。
ありがとうアービンド
.net - .net BackgroundWorkerからの出力をバッファリングする方法は?
現在、で収集している外部ソースからのデータストリームがありますBackgroundWorker
。データの別のチャンクを取得するたびに、ReportProgress()
呼び出しを使用してそのデータをGUIに提示します。
ProgressChanged
関数は単なる同期メカニズムであるという印象を受けますが、ワーカースレッドがそれを呼び出すと、GUIスレッドが変更を処理している間、両方のスレッドがロックされます。したがって、問題は、バックグラウンドスレッドがGUIを更新している間、データを受信できないことです。つまり、いくつかのパケットが失われます。それは正しいですか、それとも私のパケットが他の場所から来る可能性が高いですか?
それが原因である場合、GUI更新を行うために2番目のスレッドを追加することは合理的な解決策でしょうか、それとも私が掘り下げるべきこれらの問題を解決するためのより良い/より徹底的な方法がありますか?
どんな考えや提案も大歓迎です。
java - 最大のデータセットに適合するJAVANIOByteBufferの割り当て?
私はオンラインゲームに取り組んでおり、サーバー側で作業しているときに少し問題が発生しました。
Javaでノンブロッキングソケットを使用する場合、すべてのデータが利用可能になるまで処理できない完全なパケットデータセットを処理するための最善のアクションは何ですか?たとえば、大きな2Dタイルマップをソケット経由で送信します。
私はそれを処理する2つの方法を考えることができます:
私の例の大きな2Dタイルマップを処理するために必要な完全なデータセットを処理するのに十分な大きさのByteBufferを割り当てます。すべてが受信され、そこから処理されるまで、読み取りデータをバッファーに追加し続けます。
ByteBufferのサイズが小さい場合(おそらく1500)、ファイルから完全に処理できるようになるまで、後続の読み取りを実行してファイルに出力できます。これにより、大きなByteBufferを使用する必要がなくなりますが、ディスクI/Oが原因でパフォーマンスが低下します。
すべてのSocketChannelに専用のByteBufferを使用しているので、処理が完了するまでデータを読み込み続けることができます。問題は、2Dタイルマップのサイズが2MBの場合、1000個の2MB ByteBufferを使用するのが本当に賢明ですか(1000がクライアント接続の制限であり、それらがすべて使用されていると仮定)?私が考えていないより良い方法があるに違いありません。
私は物事をシンプルに保ちたいと思いますが、私はどんな提案にもオープンであり、助けに感謝します。ありがとう!
sockets - Is Socket.BeginReceive(IList> バッファ.. 非同期ではありませんか?
私は次のカスタムクラスを実装しようとしています:
これはソケットに渡され、そのソケットからデータを受信するためのバッファとして使用されます。
テスト中に私は呼び出し時にそれを発見しました
BeginReceive(IList..
ブロックする!? これを BeginReceive(byte[]... に置き換えると、非同期で動作します。
他の誰かがこれに出くわしましたか?
必要に応じてテストコードを投稿しますが、この質問を醜くする前に誰かから聞いてみたいです:)
ありがとう!
php - PHPでファイルをキャッシュする最良の方法は何ですか?
私はPHPコードでSmartyを使用しています.Webサイトページのいくつかをキャッシュしたいので、次のコードを使用しました:
しかし、phpファイルの最後にob_get_contents()を出力すると、空です! 実際には、作成されたキャッシュ ファイルも空です。それで、smartyを使用しているときにphpでファイルをキャッシュするにはどうすればよいですか?smartyキャッシュを使用できることはわかっていますが、何らかの理由で機能しません。
またAPCキャッシュについて教えてください。それの使い方?私の場合、使用する価値はありますか、データベースクエリをキャッシュするためだけだと思います。それについてのphpマニュアルを読みましたが、何も取得できません:)タンク。
algorithm - ポリゴンを膨張/収縮(オフセット、バッファリング)するためのアルゴリズム
ポリゴンを「膨らませる」にはどうすればよいですか?つまり、私はこれに似た何かをしたいです:
要件は、新しい(膨張した)ポリゴンのエッジ/ポイントがすべて古い(元の)ポリゴンから同じ一定の距離にあることです(例の画像ではそうではないため、膨張した頂点に円弧を使用する必要がありますが、今のところそれを忘れてください;))。
私が探しているものの数学用語は、実際には内向き/外向きのポリゴンオフセットです。これを指摘するためのバリントに+1。別の名前はポリゴンバッファリングです。
私の検索結果:
ここにいくつかのリンクがあります: