zoukankan      html  css  js  c++  java
  • 自己编写高负荷測试的工具

           近期一个项目,客户要求进行高负荷測试;所谓高负荷測试时看系统在CPU占用或MEM占用率极高情况下的表现。

           在第一轮測试时,我们通过在LINUX操作系统上,用压缩和解压缩的方法去占用CPU,这个方案有个弊端,就是比較耗时并且不可控。

    在这种測试情况下,客户非常不惬意。提出了非常多的问题。

           还要客户给了第二轮測试的机会,然后我就通过百度或谷歌,寻找高负荷測试的工具。结果一无所获。我后来想做为一个程序猿,能否够自己动手写一个这种程序呢?

    通过分析原理,占用CPU,就是让CPU可劲的进行运算;占用MEM,就是申请内存BUFFER。 分析出这个原理后,接下来的事情,就简单了。

           我设计的占用CPU的程序详细例如以下:

          

    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
     
    int main(int argc,char ** argv)
    {
        int looptimes;
        float a,b,c;
        int i;
        a = 1000000.0;
        b = 8765.0;
        i = 1;
        looptimes = atoi(argv[1]);
        while(1)
        {
            c = a / b;
            i ++;
            if((i % looptimes) == 0)
            {
                usleep(100);
            }
        }
       //printf("argc=%d
    ",argc);
       //printf("argv=%s
    ",*argv++);
       //printf("argv=%s
    ",*argv);
       //argc=2
       //argv=./occu
       //argv=100 
       return 0;
    }


     

    我设计的占用MEM的代码详细例如以下:

    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
     
    int main(int argc,char ** argv)
    {
        unsigned int initbytenum;
        void * buf;
        initbytenum = atoi(argv[1]);
        initbytenum = 1024 * 1024 * initbytenum;
        printf("initbytenum=%ld
    ",initbytenum);
        buf = malloc(initbytenum);
        memset(buf,0,  initbytenum);
        int a;
        a=0;
        int t;
        t =1;
        while(a!=9)
        {
            if(t % 100 == 0)
            {
                scanf("%d",&a);
                t =1;
            }
            t++;
            buf = malloc(initbytenum); 
            memset(buf,0,  initbytenum); 
        }    
       //printf("argc=%d
    ",argc);
       //printf("argv=%s
    ",*argv++);
       //printf("argv=%s
    ",*argv);
       //argc=2
       //argv=./occu
       //argv=100 
       return 0;
    }


     

       

  • 相关阅读:
    启用div作为编辑器 添加contentEditalbe属性
    AngularJs 通过 ocLazyLoad 实现动态(懒)加载模块和依赖-转
    angularjs的懒加载
    JavaScript 中的this指向问题
    Project Euler:Problem 41 Pandigital prime
    Android 消息机制
    新西兰天维网登录发送明文password
    使用Reveal来查看别人的APP界面+白苹果不刷机解决方式
    Android中List循环遍历性能对照
    2016年最新苹果开发人员账号注冊申请流程最强具体解释!
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/3997172.html
Copyright © 2011-2022 走看看