Home >Backend Development >C++ >How Can I Accurately Measure Function Execution Time in C ?
Background
Determining the execution time of a specific function in C can be crucial for performance analysis and optimization. Native Linux provides limited options for measuring time accurately, and the process_user_cpu_clock function from Boost.Chrono targets only user-CPU time, not encompassing the entire function execution time.
A More Precise Solution
Fortunately, C 11 introduced a versatile time measurement feature through the std::chrono::high_resolution_clock from the
Code Example
#include <chrono> /* Only for this example. */ #include <iostream> #include <thread> void long_operation() { /* Simulating a long, intensive operation. */ using namespace std::chrono_literals; std::this_thread::sleep_for(150ms); } int main() { using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::duration; using std::chrono::milliseconds; auto t1 = high_resolution_clock::now(); long_operation(); auto t2 = high_resolution_clock::now(); /* Milliseconds as an integer. */ auto ms_int = duration_cast<milliseconds>(t2 - t1); /* Milliseconds as a double. */ duration<double, std::milli> ms_double = t2 - t1; std::cout << ms_int.count() << "ms\n"; std::cout << ms_double.count() << "ms\n"; return 0; }
This code snippet demonstrates how to use high_resolution_clock to measure the duration of the long_operation function. The t1 and t2 variables record time stamps before and after executing the function, and the difference is converted to milliseconds for display.
By employing this technique, you can obtain precise and consistent measurements of function execution time, regardless of CPU load variations, ensuring reliable performance evaluations.
The above is the detailed content of How Can I Accurately Measure Function Execution Time in C ?. For more information, please follow other related articles on the PHP Chinese website!