問題タブ [chrono]
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.
c++ - 時間を測定すると、戻り値は 0 または 0.001 になります。
chrono::steady_clock
プログラム内のコードブロック間で経過した小数秒を測定するために使用しようとしています。LiveWorkSpace ( http://liveworkspace.org/code/YT1I$9 )で動作するこのコード ブロックがあります。
同じアイデアを私のプログラムに実装すると、次のようになります。
プログラムは と の値のみを出力し0
ます0.001
。私のコードブロックの実行時間が常にマイクロ秒に等しい0
かどうかは非常に疑わしい1000
ので、この丸めの原因は何ですか?また、適切な小数部の値を取得できるようにするにはどうすればそれを削除できますか?
これは Windows プログラムです。
c++ - C++11 の time_point をどのように出力しますか?
時点を作成しましたが、端末に出力するのに苦労しています。
time_point を印刷することができる唯一のドキュメントは、ここにあります: http://en.cppreference.com/w/cpp/chrono/time_point
ただし、(例のように) time_point に基づいて time_t を作成することさえできません。
エラー:
c++ - 安定したクロックは、限られたビット時間表現とどのように相互作用しますか?
20.11.7.2/1 開始:
クラス のオブジェクトは、 の値が物理時間の進行に伴って決して減少せず、 の値が実時間に対して一定の割合で進行
steady_clock
する時計を表します。つまり、クロックが調整されない場合があります。time_point
time_point
概念的にはこれは素晴らしいことですが、ある時点を表すビット数がほぼ確実に限られていることを考えると、安定したクロックの値が永遠に増加し続ける実装を想像するのは困難です。
20.11.3/2 は私の想像力の欠如を裏付けているように思えます。これは、同じ安定した時計から取得したatime_point t1
と a laterがある場合、時計が と の間でラップした可能性があるため、 がより早く来るように見える可能性があることを示唆しています。time_point t2
t2
t1
t2
この分野で標準を理解するのは非常に難しいと思います。安定した時計と時計のラッピングの関係と相互作用について、誰かが明確にすることができますか?
c++ - C++で std::chrono::time_point から年月日などを抽出する
オブジェクトから年、月、日、時、分、秒、ミリ秒を抽出するにはどうすればよいですか?std::chrono::time_point
から総量などを抽出する方法の例しか見ませんでしたduration
。
c++ - できれば C++11 クロノを使用して、エポックからの時間をミリ秒単位で取得します
私が望むのは、エポックからの時間をミリ秒単位で取得し、それを unsigned long に格納することだけです。
この関連する質問を見つけました。しかし正直なところ、これはこのような単純なタスクを実行する最も簡単な方法ではありませんよね? もっとシンプルなものを望んでいますが、std::chrono リファレンスには何も見つかりません。どんなアドバイスでも大歓迎です。必ずしも使用する必要はありませんがstd::chrono
、プラットフォームに依存しないようにしたいと考えています。
c++ - std::chrono::high_resolution_clock の解像度が測定値に対応していません
このテスト プログラムで質問させてください。
私のマシンでの出力:
解像度 (ナノ) = 100
std::cout には何ナノ秒かかりますか?
std::cout は 1000200 ナノ秒かかります
結果として、またはまたはまたはまたはまたはのいずれ1000200
かを受け取ります(= 1 または 2 マイクロ秒)。明らかに、 の分解能が100 ナノ秒ではないか、時間を測定する方法が間違っています。(たとえば、1 から 2 マイクロ秒の間で何も受信しないのはなぜですか?)1000300
1000400
1000500
1000600
2000600
std::chrono
std::cout
1500000
C++ で高解像度のタイマーが必要です。Stopwatch
同じマシンで C# クラスを使用してマイクロ秒の精度で物事を測定できるため、OS 自体が高解像度のタイマーを提供します。だから、OS が持っている高解像度タイマーを正しく使用する必要があります。
期待どおりの結果が得られるようにプログラムを修正するにはどうすればよいですか?
c++ - std::chrono の問題
クロノでのコンパイルに問題があります。コードは次のとおりです。
時間.hh
コンパイル エラー:
等...
さらに情報が必要な場合は教えてください。