how to measure time? [duplicate]

半世苍凉 提交于 2019-12-13 04:23:17

问题


I know there are many topics for finding elapse time of a code and I have read many, but i really get confused I decided to use high resolution clock and ran this code to see how many times a second the clock ticks

cout << chrono::high_resolution_clock::period::den << endl;
output:10000000

and then I defined the begin time and the end time as below

int main()
{
    auto begin = std::chrono::high_resolution_clock::now();
    .
    .
    .
    .
    auto end = std::chrono::high_resolution_clock::now();
    cout<<"RUN TIME IS :"<<endl;
    std::cout << std::chrono:: duration_cast <chrono:: nanoseconds>(end-begin).count() << "ns" << std::endl;
    system("PAUSE");
    //**********************************************************
    return 0;
}

but most of the time the output is 0, but the code is more than 2000lines I waste a lot of time,but the problem has not solved yet . So please let me know is it a good way to determine the elapse time ? And what is the wrong with my code ? I am using VS2012 another question is that i want to measure a computation time of a problem and I am not sure which one should i measure(system time , user time or real time) ? Thank you in advance


回答1:


This is correct... But the clock is not actually required to be "high-resolution", that's implementation defined.

You may consider using an alternate method, which is built into the Windows API:

Check out the QueryPerformanceCounter APIs, as explained in this question.



来源:https://stackoverflow.com/questions/23186287/how-to-measure-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!