#include <chrono>
#include <thread>
#include <iostream>
using std::chrono::high_resolution_clock;
using std::chrono::duration_cast;
using std::chrono::nanoseconds;
using std::chrono::microseconds;
typedef std::chrono::high_resolution_clock myclock;
typedef myclock::time_point time_point;
typedef myclock::duration duration;
auto time_to_wait = microseconds(1000);
inline void doStuff()
{
std::this_thread::sleep_for(time_to_wait);
}
int main()
{
time_point start, end;
start = myclock::now();
doStuff();
end = myclock::now();
auto elapsed = duration_cast<microseconds>(end - start);
std::cout << elapsed .count() << " microseconds elapsed\n";
}
I2luY2x1ZGUgPGNocm9ubz4KI2luY2x1ZGUgPHRocmVhZD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgc3RkOjpjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazsKdXNpbmcgc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q7CnVzaW5nIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kczsKdXNpbmcgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kczsKCnR5cGVkZWYgIHN0ZDo6Y2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2sgbXljbG9jazsKdHlwZWRlZiBteWNsb2NrOjp0aW1lX3BvaW50IHRpbWVfcG9pbnQ7CnR5cGVkZWYgbXljbG9jazo6ZHVyYXRpb24gZHVyYXRpb247CgphdXRvIHRpbWVfdG9fd2FpdCA9IG1pY3Jvc2Vjb25kcygxMDAwKTsKCmlubGluZSB2b2lkIGRvU3R1ZmYoKQp7CglzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IodGltZV90b193YWl0KTsKfQoKaW50IG1haW4oKSAKewoJdGltZV9wb2ludCBzdGFydCwgZW5kOwogICAgc3RhcnQgPSBteWNsb2NrOjpub3coKTsKICAgIGRvU3R1ZmYoKTsKICAgIGVuZCA9IG15Y2xvY2s6Om5vdygpOwogCiAJYXV0byBlbGFwc2VkID0gIGR1cmF0aW9uX2Nhc3Q8bWljcm9zZWNvbmRzPihlbmQgLSBzdGFydCk7CiAgICBzdGQ6OmNvdXQgPDwgZWxhcHNlZCAuY291bnQoKSA8PCAiIG1pY3Jvc2Vjb25kcyBlbGFwc2VkXG4iOwp9