我希望能够获得在我的 C++ 程序中执行某些操作所需的纳秒数。

对象创建,函数完成它的时间等。

Java 中,我们会做一些类似的事情:

    long now = System.currentTimeMillis();
    // stuff
    long diff = (System.currentTimeMillis() - now);

你会如何在 C++ 中做同样的事情?

最佳答案

标准 C++ 中的 <chrono> 库提供了执行此操作的最佳方法。这个库为时钟提供了一个标准的、类型安全的、通用的 API。

#include <chrono>
#include <iostream>

int main() {
    using std::chrono::duration_cast;
    using std::chrono::nanoseconds;
    typedef std::chrono::high_resolution_clock clock;

    auto start = clock::now();
    // stuff
    auto end = clock::now();
    std::cout << duration_cast<nanoseconds>(end-start).count() << "ns\n";
}

时钟的实际分辨率因实现而异,但此代码将始终以纳秒为单位显示结果,并在给定实现的滴答周期的情况下尽可能准确。

关于c++ - 如何在 C++ 中计时事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11850717/

10-13 07:09