linux自定义一个消耗内存的小程序(以Mb为单位)

無名 发表于: 2019-12-23   最后更新时间: 2019-12-23 18:54:39  
{{totalSubscript}} 订阅, 1,987 游览

需要消耗linux下指定大小的内存来验证一些问题,这个时候一些小程序就可以帮上忙了,下面这个小程序malloc_mb.c就是这样的作用:

安装环境

sudo yum -y install gcc gcc-c++ kernel-devel

malloc_mb.c

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#define UNIT (1024*1024)

int main(int argc, char *argv[])
{
        long long i = 0;
        int size = 0;

        if (argc != 2) {
                printf(" === argc must 2\n");
                return 1;
        }
        size = strtoull(argv[1], NULL, 10);
        if (size == 0) {
                printf(" argv[1]=%s not good\n", argv[1]);
                return 1;
        }

        char *buff = (char *) malloc(size * UNIT);
        if (buff)
                printf(" we malloced %d Mb\n", size);
        buff[0] = 1;

        for (i = 1; i < (size * UNIT); i++) {
                if (i%1024 == 0)
                        buff[i] = buff[i-1]/8;
                else
                        buff[i] = i/2;
        }
        pause();
}

通过命令就可以生成一个小程序mallocMb;

gcc malloc_mb.c -o mallocMb

使用:

./mallocMb 100 &

就可以在系统中消耗掉100M的内存

更新于 2019-12-23

查看shares更多相关的文章或提一个关于shares的问题,也可以与我们一起分享文章