#include #include //#include //#include //#include //#include //#include //#include using namespace std; // $ vc6-7: cat /proc/cpuinfo | egrep -E -i "hz|processor" // processor : 0 // cpu MHz : 2849.824 // processor : 1 // cpu MHz : 2849.824 // processor : 2 // cpu MHz : 2849.824 // processor : 3 // cpu MHz : 2849.824 // model name : AMD EPYC 7443P 24-Core Processor uint64_t x = 0; double y; int main(void) { uint64_t t1, t2, t3; size_t num_loops_millis = 1E6; size_t num_loops_micros = 1E3; //size_t num_ms = 2; //size_t num_us = 700; //std::array a_ms, a_us; //std::array d_ms, d_us; // millis t1 = __rdtsc(); for (size_t i = 0; i < num_loops_millis; i++) { //std::this_thread::sleep_for(std::chrono::milliseconds(num_ms)); //usleep(num_ms * 1000); x += 1; y = log(x); } t2 = __rdtsc(); // micros for (size_t i = 0; i < num_loops_micros; i++) { //std::this_thread::sleep_for(std::chrono::microseconds(num_us)); //usleep(num_us); x += 1; y = log(x); } t3 = __rdtsc(); // divide the difference between two RDTSC readings by the CPU's // clock frequency (in Hz). double diff_msec = (t2 - t1) / (2849.824 * 1E6) * 1E3; double diff_usec = (t3 - t2) / (2849.824 * 1E6) * 1E6; cout << " t2: " << t2 << endl; cout << " t1: " << t1 << endl; cout << " t2 - t1: " << t2 - t1 << endl; cout << "diff_msec: " << diff_msec << endl; cout << " t3: " << t3 << endl; cout << " t2: " << t2 << endl; cout << " t3 - t2: " << t3 - t2 << endl; cout << "diff_usec: " << diff_usec << endl; return 0; }