- 论坛徽章:
- 0
|
请问怎样在linux下得到cpu使用率?用C++
为了防止时间太短,随便写入一个文件.
时间应当是一个差值,而不是一个时刻.
下面的数字都是按照微秒给出的.
- #include <sys/time.h>;
- #include <sys/resource.h>;
- #include <unistd.h>;
- #include <stdio.h>;
- int main()
- {
- int i;
- struct rusage start;
- struct rusage end;
- double userTime;
- double kernelTime;
- FILE* file;
- file = fopen("dat", "a+");
-
- getrusage (RUSAGE_SELF,&start); /*RUASGE_SELF defined in sys/resource.h*/
- if (NULL != file)
- {
- for (i = 0; i < 10000000 ; i++)
- fprintf(file, "%4d", i);
- }
- getrusage(RUSAGE_SELF, &end);
-
- userTime = (end.ru_utime.tv_sec - start.ru_utime.tv_sec) * 1.0e6 + (end.ru_utime.tv_usec - start.ru_utime.tv_usec) ;
- kernelTime = (end.ru_stime.tv_sec - start.ru_stime.tv_sec) * 1.0e6 + (end.ru_stime.tv_usec - start.ru_stime.tv_usec);
-
- printf("%e\n", userTime);
- printf("%e\n", kernelTime);
- fclose(file);
-
- return 0;
- }
复制代码 |
|