用内存占用曲线画正弦波

    今天突然想起原来用cpu使用率曲线画正弦波,于是打算换个思路用内存占用率画正弦波形。

    主要用到malloc函数和free函数来操作内存。

    

    毕竟我不是ACMer所以就中规中矩的写。

    首先实现矩形波。

    首先找找思路,先写函数接口,这是一个很好的编程习惯。

    那么就:

    

int occupy_Mbyte( int size,const int delay_time,const int wait_time)

    size是分配空间大小,单位是M,这个参数可以调整;delay_time是每分配1M的延时,这样可以调整波形的胖瘦,wait_time是每次分配完波形的持续时间,这个参数在正弦波的时候有用,在产生正弦波的时候设置为0就可以了,因为正弦波的变化本身就提供了持续时间。

 然后写主函数调用:

  

int main()
{
    long int i = 0;

    for( i=0;i<20;i++){
        if(i%2 == 0){
            occupy_Mbyte(1024,0,50000);
        }else{
            Sleep(50000);
        }
    }
    return 0;
}

  这样的主函数应该能产生脉宽10s,占空比50%的矩形波。

  接下来就要实现occupy_Mbyte函数了

  
int occupy_Mbyte( int size,const int delay_time,const int wait_time)
{
        long int i = 0;

        for( i=0;i<size * 1024;i++ ){
            p[i] = malloc(1024);

            if(i%1024 == 0){
                Sleep(delay_time);
            }
        }

        Sleep(wait_time);
        for( i=0;i<size * 1024;i++ ){
            free(p[i]);
        }
}

其中p数组是定义为全局数组

int *p[1024 * 1024] = {0};

这个数组每个单元存储malloc分配的一个1024B也就是1K的内存单元的指针,那么整个数组就可以管理1G的内存分配。

我们试着运行一下看看结果。

  呵呵,ok!

  下来我们要用一用math头文件里面的三角函数函数了

时间: 2024-08-13 14:22:46

用内存占用曲线画正弦波的相关文章

[Android Pro] Android应用性能测试之CPU和内存占用(转载)

首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基于Linux的平台,所有我们可以通过Linux的资源监控命令来实现对android平台的资源实时监控. 要做到上边的测试环境的实现,需要具备以下几点: 1.被测试的手机具备root权限:因为涉及到底层的linux命令,需要读取或执行相应的文件.至于如何root你的手机,不同型号的手机root的方法不

Android应用性能测试之CPU和内存占用

最近发现自己学的很多东西没有做好积淀的工作,也萌生了写一些东西的念头.本人也没有写博客的习惯,下边就写一下手机端的性能测试. 最近公司,要我们从事对竞品的性能测试,我负责CPU和内存的性能测试,下面就和大家来分享一下android应用程序的CPU和内存的性能测试. 首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基于Linux的平台,所有我们可以通

openstack内存占用清理

公司使用openstack定制开发了云桌面平台提供给客户使用,架构是3台控制节点+N台计算节点+N台CEPH+cinder.使用一直较为稳定,今天部份客户反映双击云主机图标无法进入云桌面.或者需要多次点击方可进入云桌面.经过检查是因为2台控制节点内存占用过高导致,需要清理.下面是详细操作过程. 1.查看控制节点内存占用 [[email protected] ~]# top top - 15:29:40 up 18 days, 17:15,  1 user,  load average: 1.27

如何分析进程的内存占用问题

一共推荐三种分析内存占用的方式 1.vmmap.exe 属于SysinternalsSuite中的工具,很强大,可以方便的查看特定进程的内存总大小(Size).内存的提交大小(Committed).内存专用工作集等(Private WS)等,也可以启动一个进程定时生成快照. 具体各名词介绍可以参考工具的help,或者参考如下文章: vmmap介绍与下载地址:https://technet.microsoft.com/en-us/sysinternals/vmmap vmmap用法介绍:http:

修改oracle内存占用

进入系统, 进入系统, # su oracle $cd $ORACLE_HOME $./sqlplus /nolog >connect / as sysdba; >show parameter sga; (查看内存占用情况) NAME TYPE VALUE ------------------------------------ ----------- ------------- lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max

pvr与png的内存占用

Zwoptex生成的spritesheet除了可以导出png格式的图片外还有pvr格式.pvr格式是iOS的显示芯片可以直接读取的,不需要经过解析就能直接显示,所以渲染速度更快,更节省内存. 我特意在cocos2D 2.0 rc1版本做了一项测试: 一个空的cocos2D模版工程运行起来之后占用的内存大约是4MB. 直接用CCSprite显示一张2048*1024的数据格式为RGBA565的PNG图片之后,内存占用达到了20MB. 同样的情况下换成pvr格式之后,内存占用为16MB.也就是说pn

CLR Profile解决内存占用过高

CLR Profile解决内存占用过高的问题 炮哥:"嘿,哥们,忙啥呢,电脑卡成这逼样." 勇哥:"在用CLR Profile工具分析下FlexiPrint的内存占用情况." 炮哥:“哎哟,不错啊,玩高级的了.” 勇哥:“也没有啊,就是发现点击查询按钮查询数据时,如果数据量一大的话,内存上上升了好几个M,所以第一感觉就不太正常.正好以前也了解过CLR Profile,但一直没怎么具休的用过,这次正好拿来研究研究.” 炮哥:“Nice job,要向你学习,能够主动发现

虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte

#include <iostream> using namespace std; class A { public: A(){} virtual void geta(){ cout << "A:A" <<endl; } virtual void getb(){ cout << "A:B" <<endl; } }; class B :public A{ public: B(){} virtual void g

关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析

从上一篇文章<Android屏幕适配全攻略>写完之后,经常会有朋友问我这个问题:"能不能一个App只提供一套切图适应所有的分辨率呢?"我觉得有必要写一篇文章来研究一下这个问题,所以就有了这篇文章. 研究内容 研究方法 测试环境 研究过程 结果分析 结论 另外一个难以解释的问题 研究内容 本篇内容主要探讨以下场景:同一张图片,放置在不同的drawable文件夹,在同一设备上运行,对图片大小及内存占用有什么影响. 研究方法 控制变量法 分析法 测试环境 采用锤子T1手机(108