問題タブ [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++ - 計算時間の測定
計算時間を正しく測定するには?
バリエーション 1:
バリアント 2:
これらのバリアントは非常に異なる結果を示します: 仮想関数を std::function に置き換えようとしました:
また、std::function の仮想関数を置き換えることでパフォーマンスが向上するかどうかを理解したいと考えています。2 番目の方法は 2.5-3 のゲインを示し、最初の方法はパフォーマンスの低下を示します。
visual-studio-2012 - Microsoft C++ 2012 の std::chrono::duration::operator%() の非準拠の戻り値
私はいくつかの C++ コードを (Linux/g++4.8.1 から) Windows に移植する過程にあり、期間のモジュラス演算子の Microsoft の実装が正しくないことに気付きました。
簡単なプログラム
Microsoft Visual Studio 2012 でコンパイルすると、コンパイル エラーが発生します。
標準 ( http://en.cppreference.com/w/cpp/chrono/duration/operator_arith4 ) の定義は次のとおりです。
つまり、モジュラス演算子は共通型の期間を返します。Microsoft の実装 ( http://msdn.microsoft.com/en-us/library/hh874810.aspx ) の定義は次のとおりです。
これは、基になる期間ストレージ タイプを誤って返します。これはバグですか、それとも何か不足していますか?
c++ - C++ 11で現在の時刻をどのように出力しますか?
使用されている ostream に関連付けられたロケールの適切なフォーマット規則を使用して、C++11 で現在の壁時間を出力する簡単な方法はありますか?
私が本当にやりたいことは、次のようなものです。
関連付けられているロケールに合わせて日付と時刻を出力しますmyStream
。C++11 ではput_time
が提供されますが、フォーマット文字列が必要であり、ストリームに関連付けられたロケールによってフォーマットを決定したいと考えています。ともありますがtime_put
、time_put_byname
cppreference.com の例に基づいて、これらの関数は と組み合わせて使用されput_time
ます。
手動でフォーマットせずにタイムポイント値を印刷する簡単な方法はありませんか?
c++ - C++11 クロノ:time_point オブジェクトへの値の割り当て
私は chrono を使用して、関数によって費やされた時間を測定しようとしているので、コードは次のようになります。
したがって、基本的には、cppreferenceのコード例に従っています。
問題は、両方start=chrono::system_clock::now
で次のエラーがあることですend=chrono::system_clock::now
にも変えchrono::time_point<chrono::system_clock> start,end;
てみましたchrono::system_clock::time_point start,end;
。エラーはほとんど同じです:
Qt 5.1.0 (32bit) と MinGW 4.8 32bit をコンパイラとして使用しています。また、 .proファイルを追加QMAKE_CXXFLAGS+=-std=c++11
して、 c++11 サポート用のコンパイラ フラグを追加する必要がありました。
c++ - std::chrono での時差計測で float 型の方が double 型より有効桁数が多いのはなぜですか?
std::chrono
ツールを使用して、いくつかの時差を測定しました。float 型と double 型の両方でテストを行いました。その結果には驚くべきことがありました。double 型は7 桁目以降に...0000000
移動しますが、float 型は有効桁数を表示し続けます。...9999999
コード:
その出力:
この現象の背後にある理由は何ですか? double 型は、この特定のケースで実際に精度の低い結果をもたらしますか?
私のシステム:
IDE: Visiual Studio 2012
OS: Windows 7 x64
CPU: Intel i5 750
c++ - std::chrono::steady_clock::noexcept にする必要がありますか?
cplusplus.comのドキュメントに指定子がstd::chrono::steady_clock::now
あることに気付きました。ただし、最新の C++11 ドラフトでは、これに対する規定は見つかりませんでした (残念ながら、標準のコピーを持っていません)。noexcept
cplusplus.com ドキュメントの間違いですか、それとも指定子std::chrono::steady_clock::now
が必要noexcept
ですか?