我希望能够获得在我的 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/