c++ - 查找 C++ 执行时间

标签 c++

我很好奇 C++ 中是否有内置函数来测量执行时间? 我现在正在使用 Windows。在 Linux 中这很容易...

最佳答案

据我所知,在 Windows 上最好的方法是使用 QueryPerformanceCounterQueryPerformanceFrequency

QueryPerformanceCounter(LARGE_INTEGER*) 将性能计数器的值放入传递的 LARGE_INTEGER 中。

QueryPerformanceFrequency(LARGE_INTEGER*) 将性能计数器递增到传递的 LARGE_INTEGER 中的频率。

然后,您可以通过在执行开始时记录计数器来找到执行时间,然后在执行结束时记录计数器。从末尾减去开始得到计数器的变化,然后除以频率得到以秒为单位的时间。

LARGE_INTEGER start, finish, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
// Do something
QueryPerformanceCounter(&finish);
std::cout << "Execution took " 
    << ((finish.QuadPart - start.QuadPart) / (double)freq.QuadPart) << std::endl;

关于c++ - 查找 C++ 执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400309/

相关文章:

C++ 级联 operator[] 到 operator() 参数列表?

c++ - C++ 中迭代器的前缀和后缀增量运算符重载实现之间的区别

c++ - 保证 char、wchar_t、char16_t、char32_t 的大小排序

c++ - 选择性迭代器

c++ - NetFlow v5 - 导出流记录缺失字段

C++-Build : After editing a file in a project the build process takes a long time. 如何找出负责的文件/类?

c++ - 如何正确使用 iostream cin?

c++ - 是否可以在静态库中编写COM代码,然后将其链接到DLL?

c++ - 模板函数只适用于 VS

C++ 编译器 'shallow' 拷贝和赋值