C++11中带有chrono的计时器:从纳秒到毫秒

Timer in C++11 with chrono: from nanoseconds to milliseconds

本文关键字:计时器 chrono C++11      更新时间:2023-10-16

我想知道函数所用的毫秒数。我使用的chrono是这样的:

chrono::system_clock::time_point start = chrono::high_resolution_clock::now();
// big_function ...
cout << "Function took: " << chrono::nanoseconds(chrono::high_resolution_clock::now() - start).count() << "nanosec" << endl;   

这将打印:"Function took: 32423212131321 nanosec"
有没有办法打印毫秒而不是纳米秒?

您可以使用duration_cast

chrono::duration_cast<chrono::milliseconds>
       (chrono::high_resolution_clock::now() - start).count()

任一

chrono::duration_cast<chrono::milliseconds>
    (chrono::high_resolution_clock::now() - start).count()

(chrono::high_resolution_clock::now() - start) / chrono::milliseconds(1)

请注意,您的版本是不可移植的:如果时钟的精度更高,则需要转换为纳秒。