如何使用chrono来确定运行时间
How to use chrono to determine runtime
我想确定哪个容器更适合用于某些操作,因此我必须检查向量与列表的运行时间。
对于这个实现来说,网上的参考资料相当模糊或过于复杂。
如有任何帮助,将不胜感激
如果您可以访问C++11
编译器,
#include <chrono>
#include <iostream>
int main()
{
std::chrono::steady_clock::time_point _start(std::chrono::steady_clock::now());
// code you want to time here
std::chrono::steady_clock::time_point _end(std::chrono::steady_clock::now());
std::cout << std::chrono::duration_cast<std::chrono::duration<double>>(
_end - _start).count(); // in seconds, read more about std::chrono
}
这就是我使用它的方式:
#include <iostream>
#include <chrono>
auto start = std::chrono::high_resolution_clock::now();
... code to measure here ...
auto diff = std::chrono::high_resolution_clock::now() - start;
auto t1 = std::chrono::duration_cast<std::chrono::nanoseconds>(diff);
std::cout << "Loop1: " << t1.count() << std::endl;
您需要使用g++ -std=c++11
编译它,只要您有一个可工作的C++11编译器和库,它就应该可以工作。
这是我当前的代码:
#include <iostream>
#include <list>
#include <vector>
#include <chrono>
#include <stdlib.h>
#include <ctime>
using namespace std;
template <typename Container>
void fill_container(Container& c, int n)
{
int v;
for(int i =0; i<n; i++)
{
v= rand() %12;
c.push_back(v);
}
}
template<typename Container>
void print(Container& c, ostream& out =cout)
{
typename Container::iterator itr = c.begin();
cout << "now" ;
while(itr!=c.end())
{
out << *itr << endl;
itr++;
}
}
template <typename Container>
void removeOdd(Container& c)
{
typename Container::iterator itr2 = c.begin();
while(itr2!= c.end())
{
cout << *itr2 << endl;
if(*itr2 %2 != 0 )
{
itr2 = c.erase(itr2);
}
itr2++;
}
}
int main()
{
//Timer ends
std::chrono::steady_clock::time_point _start(std::chrono::steady_clock::now());
// code you want to time here
vector<int> damn;
fill_container(damn, 20);
removeOdd(damn);
print(damn);
std::chrono::steady_clock::time_point _end(std::chrono::steady_clock::now());
std:: cout << std::chrono::duration_cast<std::chrono::duration<double>>( _end - _start).count();
return 0;
}
相关文章:
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- KMP算法和LPS表构造的运行时间
- 如何计算Big-O表示法中的平均渐近运行时间
- 用时钟测量程序的运行时间
- 代码使用向量成功运行,但使用数组显示错误
- 使用 Qt 测量过程的实际运行时间
- 如何在以下C程序中计算运行时间内存和最大数据存储器使用情况
- (如何)我可以使用LLVM机器代码分析器预测代码片段的运行时间
- 使用Clock()函数测量程序的运行时间
- 使用 list::size() 后运行时间显著增加
- 为什么我的C++程序使用的系统时间比运行时间多
- 使用C++-AMP来减少未排序向量搜索的运行时间
- 在使用ndk的android上,运行时间报告为0ns
- 如何有效地使用std::线程来减少运行时间
- 如何使用chrono来确定运行时间
- 如何使用gettimeofday()来获取运行时间
- 使用 Unix 程序时间计算每次迭代的程序运行时间
- 使用Boost时,以秒为单位的运行时间
- 在使用ctime和计算函数运行时间时遇到问题
- 使用性能计数器获取正常运行时间的权限问题