問題タブ [gettimeofday]
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.
linux - ubuntu linuxでの論理時間と物理時間
私はこのように2つのイベント間の物理的な時間を測定しています:
しかし今、スレッドが実際に使用している論理時間を測定する方法が必要です。つまり、理論的には、他のスレッドやシステムおよびカーネルロジックの実行に費やされた時間を差し引いた物理時間でなければなりません。
私はこれがそれを行う方法だと思いました:
しかし、いくつかの測定を行ったところ、2 つの問題に気付きました。
1) 一部の測定値では物理時間よりも大きく、これは正しくありません (つまり、特定のループでは、物理時間は 0.2495.. であり、「論理」(clock() で測定) は 0.27 になります。より小さい測定値の場合は、次のようになります)。ゼロに切り上げるだけで、2番目の問題につながります...)
2) 得られた時刻は、gettimeofday によって返される時刻よりもかなり粗いようです。
Linuxでローカルスレッド時間を測定するより良い方法はありますか?
unix - 日付はgettimeofdayを使用しますか?
私が行うとき:freeBSDでの日付システムコール、それは内部的にgettimeofdayを使用しますか?
別の質問:「date」コマンドのコードがシステムのどこにあるかをどのように知ることができますか?
ありがとう。
c - gettimeofday-正確な構造体timevalフィールドの意味の説明
2つのモーメントの差をナノ秒単位で計算する単純な関数をCで作成しようとしています。gettimeofday
これを行うために、指定されたstructtimevalのフィールドを更新する関数を使用することを考えました。
マニュアルページにあるように、structtimevalのフィールドは次のとおりです。
私の質問は次のとおりです。
フィールドはtv_usec
、EPOCHから経過した時間(マイクロ秒)ですか、それとも時間の残り(マイクロ秒)ですか?
たとえば、経過時間が100秒と25マイクロ秒の場合、tv_usec
フィールドの値は「25」ですか、それとも「100000025」ですか。
どうもありがとう。
c - Cの関数に構造体へのポインタを渡すときのエラー
struct timevals
C プログラムで 2 つの間の経過時間を出力する関数に 2 つへのポインターを渡そうとしています。ただし、これらのポインターを逆参照しても、nvcc は「式にはクラス型が必要です」というエラーをスローします (これは CUDA プログラムです)。main() からの関連コードは次のとおりです。
HostStopTimer() の関数定義:
エラーの原因となっている行は、への割り当てelapsed
です。C で構造体を使用した経験はあまりなく、構造体へのポインターを関数に渡す経験はあまりないため、エラーの原因がわかりません。
c++ - gettimeofday と localtime を使用した正確なタイムスタンプ
gettimeday と localtime を使用して、複数のアプリケーションとデータ パスで経過したシステム時間を監視しようとしています。この例では、コードを実行する直前にシステム時間 (マイクロ秒の精度) を取得したいと考えています。私は現在、次のようにしています:
私が理解していることから、 localtime 呼び出しは間違いなく少しオーバーヘッドが発生し、精度が低下する可能性があります。これについては完全に間違っているかもしれませんが、監視するコードが完了するまで localtime を呼び出すのを待つ必要がありますか? 私は localtime が gettimeofday の結果のやや高価な変換を行っているだけであると想定しているため、printf ステートメントの直前に配置する必要があります。
c - gettimeofday と同等の高速化
毎秒数百のメッセージを送信する必要があり、各メッセージに時間フィールドが含まれる、非常に遅延の影響を受けやすいアプリケーションを構築しようとする際に、gettimeofday の最適化を検討したいと考えました。最初に考えたのは、rdtsc
最適化に基づくものでした。何かご意見は ?他のポインターはありますか?返される時間値の必要な精度はミリ秒ですが、値が受信側と 1 ~ 2 ミリ秒ずれることがある場合は大した問題ではありません。gettimeofday にかかる 62 ナノ秒よりも優れた処理を試みる
linux - Xenomai リアルタイムスレッドから gettimeofday() を呼び出す安全な方法はありますか?
ptpd に従って現在の時刻を確認するために、時々 gettimeofday() を呼び出す必要がある Xenomai リアルタイム スレッドを実行しています。
ただし、これを行うのは安全ではないようです。特に、Xenomai スレッドと Linux カーネルが「ライブロック」状態になることがあり、ここで説明されているように、gettimeofday() が CPU を回転させて戻らなくなります。
私の質問は、Xenomai リアルタイム スレッドから gettimeofday() の情報を安全に取得する方法はありますか? 独自のバージョンの gettimeofday() を Linux カーネルに追加することを検討しています (私のバージョンは、read_seqretry() が true を返すと失敗します。これが発生すると永久にループする通常のバージョンとは異なります)。ただし、より良い方法があれば、Linux カーネルのカスタマイズをすぐに開始したくありません。
c - 組み込みシステムで gettimeofday にリンクできない、経過時間の提案?
組み込み ARM デバイスで gettimeofday を使用しようとしていますが、使用できないようです。
gettimeofday() を使用できないと仮定していますか? 経過時間を知ることができるようにするための提案はありますか? (例: 100ms)
php - gettimeofday()は常にアクセス可能ですか?
Google、php.net、phpメーリングリストのアーカイブを試しましたが、探しているものが見つかりません。多分それは明白であるか、多分誰もこれについて不思議に思っていません...
何年もの間、microtime()を使用して、マイクロ秒を含む現在の時刻を取得してきました。しかし、誰かがマニュアルページの文章を指摘してくれました。「この関数は、gettimeofday()システムコールをサポートするオペレーティングシステムでのみ使用できます。」
また、PHPのgettimeofday()は、同じ状況を示唆しています。「これはgettimeofday(2)へのインターフェースです。」
しかし...どのようなシステムでは、このシステムコールを利用できませんか?いくつかのグーグルは、Windows上のCでgettimeofday()実装を取得しようとする多くのCプログラマーを提供しました。これは、それが含まれていないように見えるためです。しかし、PHPのmicrotime()とgettimeofday()は、Windows(少なくとも私がアクセスできるボックス)では問題なく機能しているようです。また、microtime()またはgettimeofday()のいずれかの存在を呼び出す前にチェックしているように見えるPHPコードは、Web上のどこにも見つからないようです。また、Windowsで作業しているPHPプログラマーがたくさんいる必要があります。ボックスなので...
マニュアルの文章を無視して、両方の機能が常に利用可能であると信じるべきですか?または、microtime()またはgettimeofday()を使用せずに、マイクロ秒を含むシステム時刻に到達するための別のクロスプラットフォームの方法はありますか?または、両方の関数が常に存在しますが、gettimeofday()システムコールが利用できない場合はマイクロ秒を与えませんか?
編集1:
多分これは私のポイントをいくらか明確にします。
c - C: gettimeofday() は実行するたびに同じ値を生成します
ISO-8601 の時刻をデシ秒の精度で出力しようとしています。YYYY-MM-DDThh:mm:ss.s
これが私のコードです:
そして、実行するたびに出力は次のようになります。
もう 1 つ気づいたことは、tv_usec が 100 万を超えていることです。