码迷,mamicode.com
首页 > 其他好文 > 详细

消耗CPU的程序

时间:2014-07-31 12:08:06      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   for   2014   问题   

昨天领导交代客户需要一个可以测试CPU性能的脚本,问题简化下就是说要做一个可以手动设置对CPU产生消耗的程序。心想哪有这种脚本,或许性能测试工具还差不多。琢磨了下,或许用死循环可以达到差不多的效果,但是单进程(单线程)造成的影响有限,因为服务器都是多个物理核心。那就是用多线程吧,手动写了个多线程demo,生成后发现线程都集中在一个CPU内工作,虽然把单个CPU搞成100%了,但是整体消耗不大(大约10%左右)。后来百度了下说得CPU绑定线程才有用,但是这方面不是一下就能熟悉的,所以还是多进程的实现较为简单。

代码很简单:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <wait.h>
/**
*@Usage: ./$0 [SUBPROCESS NUMBER]
*/
int main(int argc, char *argv[]){
        pid_t pid;
        int i, pn=4;
        if(argc==2){
            pn=atoi(argv[1]);
        }
        for(i=0;i<pn;i++){
                pid=fork();
                if(pid<=0)break;
        }
        if(pid<0){
                printf("fork() error\n");
                return -1;
        }else if(pid==0){
                //sub process works 
                for(;;)i=(i%4)*1.0;
        }else{
                //wait for the sub process‘s termination
                wait(NULL);
        } 
        return 0;
}
gcc -Wall test.c -o test.o
chmod +x test.o
#启动五个子进程试试效果
./test.o 5

 

贴张图:

bubuko.com,布布扣

消耗CPU的程序,布布扣,bubuko.com

消耗CPU的程序

标签:style   blog   http   color   io   for   2014   问题   

原文地址:http://www.cnblogs.com/lichmama/p/3879982.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!