問題タブ [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++ - 時間の印刷/読み取り時の奇妙な動作
に保存std::time_point
してstd::stream
読み戻そうとしています。1 つの問題は、標準関数を使用すると、どこかで 1 時間を「失う」ことです。つまり、私が読む時間は、私が書く時間よりも 1 時間遅れています。どこかで夏時間を設定する必要があると思います。std::stringstream
時間を aに出力して読み返す小さなプログラムをまとめました。
最も奇妙なことは、プログラムが次のように出力することです。
そして、プログラムの最後にある 3 行のコメントを外す (時点間の差を出力する) と、結果は次のようになります。
dst (夏時間) が突然等しくなく、時間も等しくないことに注意してください。
XCode46-DP2 を搭載した Mac OS X 10.8.2 で libc++ を使用しています。私が使用しているclang ++バージョンApple clang version 4.1
はclang version 3.2 (trunk 167239)
私の質問は次のとおりだと思います: A) 1 時間の違いに関しては、これは私のライブラリのバグですか、それとも標準関数を正しく使用していませんか? (後者は私を驚かせません...)
B) プログラムの最後にある 3 行のコメントを外すと、コードはどうなりますか? これは私にはバグのように見えます。自分のプラットフォームで試してみたい人はいますか?
c++ - GCC での std::put_time 実装ステータス?
GCC (テスト済みバージョン 4.5.1、4.6.3、4.8.4) を使用してこのサンプル プログラムをコンパイルしようとしました。
おそらくまだ実装されていないと思いました。ということで、この機能の実装状況を調べてみました。このページしか見つかりませんでした:
しかし、そこにはメモが見つかりませんでしput_time
たchrono
。このライブラリの実装ステータスに関する情報を提供するリソースを教えてもらえますか?
c++ - 正確な時間測定
関数のタイミングを測定するために C++ で time.h を使用しています。
ただし、私は常に 0.0000 の時間を取得しています。clock() と t を別々に印刷すると、同じ値になります。C++ で時間を正確に (おそらくナノ秒単位で) 測定する方法があるかどうかを知りたいです。私はVS2010を使用しています。
c++ - int ミリ秒および float 秒として期間を取得する方法?
タイマーと期間に chrono ライブラリを使用しようとしています。
Duration frameStart;
(アプリの開始から)とDuration frameDelta;
(フレーム間の時間)を持つことができるようにしたい
frameDelta
期間をミリ秒とフロート秒で取得できるようにする必要があります。
<chrono>
新しい C++11ライブラリでこれを行うにはどうすればよいですか? 私はそれに取り組んでおり、グーグルで検索しています(情報はまばらです)。コードは非常にテンプレート化されており、特別なキャストやものが必要です。このライブラリを正しく使用する方法がわかりません。
c++ - Windows の正確なタイミング: CreateTimerQueueTimer または system_clock::now() でエラーが発生しましたか?
+/- ミリ秒のタイミング精度を達成するために取り組んでいます。スレッド間の時間を 10 ミリ秒にしたいのですが、時間を測定すると 15 ミリ秒近くになります。
問題が時間の測定方法に起因するのか、それとも時間を正確に測定していて遅延が発生しているのかを理解しようとしています。 CreateTimerQueueTimer
私のコードは次のようになります
出力は次のようになります
c++ - std::chrono::time_point を UNIX タイムスタンプに変換する
std::chrono::duration
特定の日付以降を取得するにはどうすればよいですか? std::chrono::time_point
aを UNIX タイムスタンプに変換するには、これが必要です。
XXX にコードを挿入
time_point
メソッドがあることは知っていますtime_since_epoch()
が、これが UNIX エポック (1970 年 1 月 1 日の 00:00:00 UTC) と同じであるとは限りません。
c++ - C++ Chrono を使用して更新ループを処理しますか?
私は間違いなく、新しい C++ chrono ライブラリに少し戸惑っています。
ここに更新ループがあります。次の 2 つの操作を実行します。
これらは長い操作であり、どれくらいの長さかを判断するのは困難です。
したがって、それらにかかった時間を測定し、いくつかの計算を行い、render を呼び出す前に update を徐々に呼び出す最善の方法を見つけます。
これを行うには、C++11 の Chrono 機能を使用しています。私がこれを選んだのは、より正確で、よりプラットフォームに依存するという、お得なように思えたからです。しかし、今よりも多くの問題に直面していることに気づきました。
以下は私のコードと私の主な問題です。問題または私の操作を行うための適切な方法についての助けが大いに必要です!
問題の行のすぐ横にあるコメントで質問をマークしました。これを以下で繰り返します。
ヘッダー ファイル:
簡素化された更新ループ
主な質問は次のとおりです。私の mDeltaTime は常に小さくなります。基本的に、ほぼ無限ループに陥っています。これは、kMaxDeltatime が非常に小さいためですが、1 秒あたり 60 フレームをターゲットにしている場合、正しいミリ秒を計算していませんでしたか?
上記のすべての質問は次のとおりです。
混乱させてごめんなさい。私はこの chrono ライブラリを馬鹿にしているように感じます。ほとんどのヘルプ サイト、参考資料、または直接コード自体でさえ、私がそれを何に適用しているかを読んで理解するのは非常に混乱しています。解決策やコードを探す方法についてのアドバイスは大歓迎です!
編集: Joachim は、 std::min/max がミリ秒単位で問題なく動作することを指摘しました! 変更を反映するようにコードを更新しました。
c++ - std::chrono: カスタム期間を time_point に追加します
次のコードはコンパイルされます ( g++ 4.7.2
)。
私の問題は、どのタイプがあるかわからないことt3
です。ではなくtimepoint_t
、明示的に指定されたタイプの行のコメントを外すと、コンパイルされません。関数呼び出しと同じ: I can't call do_something
with t3
.
だから私の質問は:
- 変換が失敗するのはなぜですか?
- 倍精度の秒数を取得する最良の方法は何ですか?
このような追加のキャストを使用できることを知っています
しかし、私はこれを避けたいです。
前もって感謝します!
c++ - std::put_time() の問題
こんにちは、Visual Studio 2012 でコンパイルできる非常に単純なテスト ケースがあります。ただし、実行時にエラーが発生します。この失敗を引き起こす行は、時間機能に関連する多くの例で cppreference.com にあるのとまったく同じようにコピーされます。このような例のページhttp://en.cppreference.com/w/cpp/chrono/c/localtime
この投稿をクリーンに保つために、スタック トレースをここに置きます http://ideone.com/WaeQcf
c++ - g ++ vs intel/clang引数の受け渡し順序?
次のコード ( LWS )を検討してください。
目に見える違いがない場合があるため、数回実行する必要があります。first
しかし、との評価時間の間に目に見える違いがある場合second
、結果は g++ の下で次のようになります。
および intel および clang の下の以下:
これは、g++ ではsecond
引数が最初に評価され、intel と clang ではfirst
引数が最初に評価されることを意味します。
C++11 標準に従って正しいのはどれですか?