#include #include #include #include static float time_used() { static rusage prev; rusage cur; assert(getrusage(RUSAGE_SELF, &cur) == 0); std::cout << '[' << cur.ru_utime.tv_sec << ", " << cur.ru_utime.tv_usec << ']'; uint64_t diff = (cur.ru_utime.tv_sec - prev.ru_utime.tv_sec) * 1000000 + cur.ru_utime.tv_usec - prev.ru_utime.tv_usec; std::cout << 'T' << diff/1000000. << std::flush; prev = cur; return diff/1000000.; } int main(int argc, const char **argv) { int n = 0; for ( ; ; ) { int k = 0; for (int i = 0; i < 1e9; ++i) k += rand(); std::cout << ' ' << (k & 1) << ' '; float t = time_used(); if (t == 0) { if (++n == 5) break; } else n = 0; } }