1

この質問に対する要件を満たす、または十分に明確に説明する答えを実際に見つけることなく、検索を試みました。

timeGetTime() 関数がウィンドウで行うのと同じ方法で、ティック数またはミリ秒数を取得できる関数または関数を実装する方法を探しています。

標準の C++ のみを使用し、追加のライブラリやプラットフォーム固有のものを使用しないソリューションを探しています (Windows の timeGetTime() または Linux の同等物、マルチプラットフォーム ソリューション)。

私は自分のコード プラットフォームをライブラリの下位レベルで独立させようとしていますが、timeGetTime() のようなものをまとめる方法を教えてくれる人がいるかどうかを知りたいだけです。

ありがとう

更新: 必ずしも高いパフォーマンスと精度を求めているわけではありません。最後にチェックしてから経過した時間をミリ秒単位の精度で確認するだけで済みます。

4

2 に答える 2

5

<chrono>C++11 で追加された非常に冗長なライブラリを使用できます。

必要に応じてさまざまな種類の時計があり、system_clock使用できる唯一のものでtime_tありhigh_resolution_clock、可能な限り最小の目盛を持つものです。

タイミングは比較的簡単です。たとえば、次のようになります。

#include <iostream>
#include <chrono>

int main() {
    auto now = std::chrono::high_resolution_clock::now();
    //do stuff here
    auto then = std::chrono::high_resolution_clock::now();
    std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(then-now).count();
}
于 2013-02-09T00:33:23.170 に答える
4

C++11<chrono>は、古い よりも高い解像度でシステム時刻を読み取る標準化された方法を提供するヘッダーを追加しましたlocaltime。ただし、精度はプラットフォームによって大きく異なります。

このsteady_clockクラスはおそらくあなたにとって最も役立つでしょう。

于 2013-02-09T00:25:42.737 に答える