如何编写一个C程序:不断耗用主机内存直至占满10G的内存
性能测试需要模拟主机内存被大量占用的情况,因此需要编写一个C程序实现如下功能,假设程序名是allm
执行allm 1024就可以占用1024M的内存
执行allm 2048就可以占用5000M的内存
请大师们提供一下源代码,谢谢
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
int main(int argc, char *argv[]) {
unsigned long n=atoi(argv);
void *p=mmap(NULL, n*1024*1024, PROT_READ| PROT_WRITE, MAP_ANON, -1, 0);
while(1) memset(p, 0, n*1024*1024);
}
耗尽内存做性能测试?测试什么呢?测试极限情况服务状况? windoze 发表于 2016-08-22 02:16
手太快了,正想用map来着 那这个源代码该如何设计呢 while(1) memset(p, 0, n*1024*1024);
这个很慢的, 改成一页随机写入一个字节(字)比较好。
页大小可通过参数传入。
学习了。回复 2# windoze
回复 6# folklore
这样写程序短……
再说lz不是要烧机器么,正好帮他烧一下。 回复 8# windoze
:)。
PS:
我以前试过一页写一个int的, 全部写完16G要十几分钟~~
(刚买电脑时,测试内存用的)
页:
[1]