問題タブ [usleep]

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.

0 投票する
1 に答える
677 参照

c - より多くの注文がある usleep ループでの Clock() 戻り値 0

スレッドでいくつかのコードを実行するのにどれくらいの時間がかかるかを調べようとしています。しかし、clock() は 0 を返しています。

これはコードです:

しかし、私は常に0クリックを取得します。usleep は正確に 200 ミリ秒待っていないと思うので、ffmpeg を使用して同期を使用してオーディオをエンコードする関数にかかる時間を計算する必要があります。

0 投票する
3 に答える
80003 参照

c - C.usleepの時間遅延

私はCで書かれたゲームサーバーを開発しています。そして、アルゴリズムを実行するために特定の頻度(1秒あたり50回)のサイクルを開発する必要があります。問題は、プログラムを正確な時間間隔(20000マイクロ秒)で一時停止できないことです。関数usleep(20000)は約30000マイクロ秒で実行されます。結果は常に予想よりも10000マイクロ秒長くなります。

これが私の簡単なコード例です。

そしてそれが実行された結果:

関数も使ってみましselect()たが、結果は。と同じsleep()です。

私に説明してください、私のコードの何が問題になっていますか。

ps:

0 投票する
7 に答える
21219 参照

c++ - Linux 上の C++ での usleep(0) の効果

usleepのドキュメントには、呼び出しは無効であると記載されusleep(0)ています。ただし、以下の C++ コードの小さなスニペットを実行している私のシステム (RHEL 5.2) では、実際には と同じ効果があるように見えることがわかりましたusleep(1)。これは予想されることですか? もしそうなら、ドキュメントと実際に目にするものとの間に矛盾があるのはなぜですか?

展示物A

コード:

出力:

展示B

コード:

出力:

0 投票する
5 に答える
1467 参照

c - スリープは 1 ミリ秒未満

CPU負荷生成ツールを作成しようとしています。私の入力は0〜100の数値になります。負荷を計算するために時間関数を使用しており、負荷を確認しています。負荷が望ましい値を超えた場合、プロセスをスリープさせようとします。私が直面している問題は、500 ミリ秒以上の期間だけ、必要な負荷が得られるということです。それ以下ではありません。「top」というツールの負荷をチェックしています。トップの期間を短縮しようとすると。負荷変動を観察します。プロセスを 1 ミリ秒以下でスリープ状態にする方法はありますか。

0 投票する
2 に答える
2542 参照

c++ - nanosleep not working with multiple threads

I have a problem with the nanosleep() function.

In a test project, it works as expected.
In the real project, it does not: it is like if the sleeping time was zero.

As far as I can see, the biggest difference between the test and the real project is the number of threads: one in the test, two in the real one.

Could this be the reason?

If I put the nanosleep call in the code run by one thread, shouldn't that thread pause?

Thank you.

0 投票する
2 に答える
1425 参照

c - 経過時間を計算するusleep()は奇妙な動作をします

以下のコードを使用して、ハンドラー関数を連続して呼び出すたびに経過時間をミリ秒単位で計算しています。usleep(1000)を使用する場合、つまり各呼び出し間の1ミリ秒の時間差は10ミリ秒であり、usleep(1000000)を使用する場合、つまり1秒の場合、各呼び出し間の時間間隔は1ミリ秒未満になります。以下はコードスニペットです:

0 投票する
2 に答える
1004 参照

php - 数値の最後の X 桁を 10eX で除算せずに切り捨てる

私はブロッキング アルゴリズムを作成していますが、そのようなアルゴリズムにタイムアウトを追加することは、精度を維持する必要がある場合、それほど簡単ではないことに気付きました。
タイムアウトを追加するということは、ブロッキング アルゴリズムが X ミリ秒後に中止されなければならないことを意味します。今、私には2つのオプションがあるようです:

  1. 反復時間 (エラーはあるが速い)
    • ブロッキング状態を確認する
    • 1 ずつ反復します (これは、 usleeptime_elapsedを使用して 1e-6 秒を意味します)
    • と比較time_elapsedしてくださいtimeout。(これが私が話す問題です
    • usleep(1)
  2. 反復ごとにシステム時刻を取得する (遅いが正確)
    • はこれを行う方法を知っています。それについての回答を投稿しないでください。

timeoutとの競合time_elapsed

そして気になるのがこちら。10e-6 秒間スリープしているtimeout間、ミリ秒 (10e-3) 単位になります。usleepしたがって、 mytime_elapsedは よりも 1000 倍正確になりtimeoutます。(と等しい演算を除算せずに下3桁を切り捨てたい。除算アルゴリズムが遅すぎる。 time_elapsedfloor($time_elapsed/1000)

概要

変数を 1000 で割らずに 1000 倍小さくしたいのですが、データを削除したいだけです。バイナリではビットシフト演算子を使用しますが、10 進システムに適用する方法がわかりません。

コードサンプル:

SO を使用している人が理論的な質問に答えられない場合、彼らは本当にコードに飢えていることがあります。ここにあります:

このコードをもっと速いものに置き換えたいです。質問自体はタイムアウトでいっぱいですが、質問のタイトルはそのデータの切り捨てに関するものであることに注意してください。他のユーザーは、タイミング以外の目的でソリューションが役立つ場合があります。

0 投票する
1 に答える
870 参照

php - php sleep/usleep はサーバーに負荷をかけますか?

ロングポーリングを試しています。jquery ajax を使用して、サーバー上の php スクリプトを呼び出します。

これは私のコードです:

オフィス用の簡単なチャット システムを作ろうとしています。約 100 人の接続ユーザーが、このスクリプトを 1 日中同時に実行しています。

上記のサンプル コードは大量のシステム リソースを消費しますか?

ホスティングから最後の警告をすでに受け取っているため、これをオンラインにしてテストすることはできません。

0 投票する
5 に答える
826 参照

c++ - C++ でプロセッサ時間を放棄する (Windows)

私はかなりの量を見回しましたが、私が探しているものを見つけることができないようです.

私が解決しようとしている問題の背景は次のとおりです。

名前付きパイプのように動作するメモリ マッピング ライブラリを作成しました。バイトを入れたり、そこからバイトを取得したり、読み取り/書き込みに使用できるバイト数を照会したりできます。

それを使用して通信する高速な (ほとんどの場合) プロセスは、8KB 以上のバイトのチャンクを渡す場合、平均 4GB/秒になります。チャンク サイズが 512B に近づくと、パフォーマンスは約 300MB/秒まで低下します。

問題:

非常にまれに、負荷の高いサーバーでは、非常に大きなラグ タイム (5 秒以上) が発生します。この問題の原因についての私の実行中の理論は、大規模な転送が行われている場合 (マップされたメモリのサイズよりも大きい場合)、データを書き込んでいるプロセスがタイト ポーリングを実行して、実装されている循環バッファーで使用可能なスペースが増えるのを待つことです。メモリマップの一番上。スリープの呼び出しがないため、ポーリング プロセスが正当な理由もなく CPU を占有している可能性があります。問題は、最小のスリープ呼び出し (1 ミリ秒) でさえ、パフォーマンスを完全に破壊することです。memmap のサイズは 16KB であるため、16KB ごとに 1ms スリープすると、パフォーマンスは 16MB/s の最良のシナリオまで低下します。

ソリューション:

CPU を放棄する呼び出し可能な関数が必要ですが、オペレーティング システム (この場合は Windows 7) によって再スケジュールされるタイミングに制限はありません。

誰か明るい代替案を持っていますか?/そのような機能が存在するかどうか知っていますか?

ありがとう。