問題タブ [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.
boost - リンクせずにboost::chronoを使用する
BOOST_CHRONO_HEADER_ONLYが定義されている場合、libはヘッダーのみです。
これを定義しても、リンカーエラーが発生します。
これはドキュメントのバグですか?それとも、chrono
ヘッダーのみの使用を本当にサポートしていますか?
c++ - std::system_clock と std::steady_clock の違いは?
std::system_clock
とはどう違いstd::steady_clock
ますか?(さまざまな結果/動作を示す例は素晴らしいでしょう)。
関数の実行時間を (ベンチマークのように) 正確に測定することが私の目標である場合、 と の間の最良の選択は何でしょstd::system_clock
うstd::steady_clock
かstd::high_resolution_clock
?
c++ - に基づくタイマー クラスの改善
エポックからの経過時間を簡単に取得するために、次の Timer クラスがあります。
Timer::time_elapsed() をテンプレート関数にすることでクラスが複雑になりすぎていると感じており、理想的にはその使用法を次のように簡素化したいと考えています。
c++ - chrono に独自の名前空間があるのはなぜですか?
C++ 標準ライブラリでこれまでに見た他のすべては、std
名前空間にあります。からのものを使用するstd::chrono
と、通常、1 行あたり 80 文字の制限を超えますが、これは問題ではなく、単に不便です。
ここで私の簡単な質問: chrono ヘッダーに独自の名前空間があるのはなぜですか?
c++ - std :: chronoスーパータイプ、関数の引数の受け渡し
私は持っています
そして、ある時点で一般的な型を使用して関数に渡したいと思います。使用する時計の解像度や種類を指定したくありません。
使ってみました
しかし、成功しませんでした。どうやらstd::chrono::time_pointはタイプではないので。
c++ - ブーストクロノendTime-startTimeはブースト1.51で負を返します
私のmacbookproのブーストクロノライブラリvs1.51は、endTime --startTimeを差し引くと、負の時間を返します。時点を印刷すると、終了時刻がstartTimeよりも早いことがわかります。これはどのように起こりますか?
私は別の時計を試しましたが、違いはありませんでした。
どんな助けでもいただければ幸いです!
編集:出力を追加するのを忘れました:
現在の時間:起動から1ナノ秒
開始時間:起動から140734799802912ナノ秒
終了時間:起動から140734799802480ナノ秒
合計解析時間:-432ナノ秒反復あたりの平均解析時間:0ミリ秒
c++ - 単調なクロックのないシステムでは、適合実装は不可能ですか?
<chrono>
ヘッダーはsteady_clock
、単調なクロックを表すクラスを定義します。つまり、の値は、物理now()
的な時間が増加しても減少しません。ただし、このクラスはオプションとしてマークされていないため、単調なタイムソースのないシステムで実行されているために実装が実装できない場合はどうなりますか?
libstdc ++ソースを見てみると、定義_GLIBCXX_USE_CLOCK_MONOTONIC
されていない場合は、次のようにsteady_clock
簡単に定義されます。
system_clock
ただし、必ずしも安定しているとは限らないため、これはの要件を破る可能性があります(おそらくそうなるでしょう)steady_clock
。
単調な時間ソースのないシステムでは、C ++ 11の適合実装は不可能ですか?タイプsteady_clock
のようにオプションにするだけではどうでしょうか。intX_t
c++ - std::chrono::high_resolution_clock の不正確さ?
だから私は std::chrono::high_resolution_clock を使用して、何かの実行にかかる時間を計ろうとしていました。開始時間と終了時間の違いを見つけることができると思いました...
私のアプローチが機能することを確認するために、次のプログラムを作成しました。
問題は、明らかに実際にはそうではないのに、正確に 3000ms を出力することです。
短い問題では、0ms を出力するだけです...何が間違っていますか?
編集:それが役に立たない場合は、-std=c++0x フラグをオンにして GNU GCC コンパイラを使用しています。
c++ - についてのいくつかの質問C++ 11 のヘッダー
<chrono>
C++ 11 の新しいヘッダーについていくつか質問があります。Windows 7、Visual Studio 2012 を使用しています。
例を見るhttp://en.cppreference.com/w/cpp/chrono
可能な出力
std::chrono::system_clock::now();
使用例は、CPU時間ではなく経過時間のみを測定するために使用できることを意味することに気付きました??? また、CPU 時間を測定したい場合は、どのクロックを使用すればよいですか?elapsed time: 3s
出力は整数に丸められることに注意してください。もっと細かくする方法はありますか?
c++ - std::chrono::time_point を現在に設定
私はまだライブラリにかなり慣れていないため、std::chrono で見つけることができるドキュメントは機能しません。
タイム スタンプを含むオブジェクトのコンテナーを実装しようとしています。オブジェクトはすべて、最新のものから古いものの順に保存され、std::chrono::time_point を使用して各タイム スタンプを表すことにしました。データを処理するスレッドは定期的にウェイクアップし、データを処理し、いつ再ウェイクアップする必要があるかを確認してから、その期間スリープします。
上記の宣言は、ミリ秒精度のステッド クロックを使用しているという印象を受けます。
次のステップは、_nextWakeupTime を現在の表現に設定することです。
その行はコンパイルされません:
Windows システムでは、stead_clock は system_clock と同じものであることは理解していますが、ここで何が起こっているのかわかりません。私はこれを行うことができることを知っています:
それが私が何をすべきかをうまく表しているとは思えません。
同じように、指定されたクロック/期間の time_point オブジェクトをインスタンス化し、現在と等しく設定する最良の方法は何ですか?