首页 > 其他 > 详细

获取CPU时间和计算CPU使用率

时间:2019-12-15 15:46:06      阅读:126      评论:0      收藏:0      [点我收藏+]
#include <bits/stdc++.h>
#include <unistd.h>
#include <sys/resource.h>
#include <sys/time.h>

#define DBG(x) cerr << #x << " = " << x << endl

using namespace std;
typedef long long LL;

double cpu_load(double start, double end, double used) {
    return used / (end - start) * 100;
}

double cpu_time_used_s() {
    rusage usage;
    getrusage(RUSAGE_SELF, &usage);
    return usage.ru_stime.tv_sec + double(usage.ru_stime.tv_usec) / 1000000 + usage.ru_utime.tv_sec + double(usage.ru_utime.tv_usec) / 1000000;
}

double get_time_s() {
    timeval tv;
    gettimeofday(&tv, NULL);
    return tv.tv_sec + double(tv.tv_usec) / 1000000;
}

int main(int argc, char **argv) {
    double start = get_time_s();

    srand(time(NULL));
    int x = rand();
    for (int i = 0; i < 300000000; i++) {
        x ^= rand();
        x |= rand();
        x &= ~rand();
    }

    sleep(5);

    double end = get_time_s();
    double real_time_used = end - start;
    double cpu_time_used = cpu_time_used_s();

    printf("start: %.3fs, end: %.3fs\n"
           "real_time_used: %.3f\n"
           "cpu_time_used: %.3fs, cpu_load: %.3f%%\n",
           start, end, real_time_used, cpu_time_used, cpu_load(start, end, cpu_time_used));

    return 0;
}
start: 1576392425.566s, end: 1576392438.229s
real_time_used: 12.663
cpu_time_used: 6.230s, cpu_load: 49.201%

获取CPU时间和计算CPU使用率

原文:https://www.cnblogs.com/ToRapture/p/12044165.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!