Measuring execution time of a function in C++

后端 未结 11 890
小鲜肉
小鲜肉 2020-11-22 12:59

I want to find out how much time a certain function takes in my C++ program to execute on Linux. Afterwards, I want to make a speed comparison . I saw sever

11条回答
  •  臣服心动
    2020-11-22 13:32

    It is a very easy-to-use method in C++11. You have to use std::chrono::high_resolution_clock from header.

    Use it like so:

    #include 
    #include 
    
    void function()
    {
        long long number = 0;
    
        for( long long i = 0; i != 2000000; ++i )
        {
           number += 5;
        }
    }
    
    int main()
    {
        auto t1 = std::chrono::high_resolution_clock::now();
        function();
        auto t2 = std::chrono::high_resolution_clock::now();
    
        auto duration = std::chrono::duration_cast( t2 - t1 ).count();
    
        std::cout << duration;
        return 0;
    }
    

    This will measure the duration of the function.

    NOTE: You will not always get the same timing for a function. This is because the CPU of your machine can be less or more used by other processes running on your computer, just as your mind can be more or less concentrated when you solve a math exercise. In the human mind, we can remember the solution of a math problem, but for a computer the same process will always be something new; thus, as I said, you will not always get the same result!

提交回复
热议问题