mmap,malloc分配随机内存
随机数1G
#cat malloc_rand_1g.c
#include <stdio.h> /* printf, scanf, NULL */
#include <stdlib.h> /* malloc, free, rand, system */
#include <unistd.h>
#include <memory.h>
int main ()
{
int size;
int n;
char * buffer;
size=1024*1024*1024; //1G
printf ("输入字符串的长度:%d bytes\n",size);
//scanf ("%d", &i);
buffer = (char*)malloc(sizeof(char) * size); // 字符串最后包含 \0
if(buffer==NULL) exit(1); // 判断是否分配成功
memset(buffer,'a',sizeof(char) * size);
printf("total bytes:%d bytes \n",sizeof(char) * size);
// 随机生成字符串
for(n=0; n<size; n++){
buffer[n] = rand()%26+'a';
// printf("%c",buffer[n]);
}
printf("\n");
buffer[size+1]='\0';
// printf ("随机生成的字符串为:%s\n",buffer);
printf("wait about 1800s....\n");
sleep(1800);
free(buffer); // 释放内存空间
printf("clean up....\n");
return 0;
}
memset(a)
#cat malloc_a_1g.c
#include <stdio.h> /* printf, scanf, NULL */
#include <stdlib.h> /* malloc, free, rand, system */
#include <unistd.h>
#include <memory.h>
int main ()
{
int size;
int n;
char * buffer;
size=1024*1024*1024; //1G
printf ("输入字符串的长度:%d bytes\n",size);
//scanf ("%d", &i);
buffer = (char*)malloc(sizeof(char) * size); // 字符串最后包含 \0
if(buffer==NULL) exit(1); // 判断是否分配成功
memset(buffer,'a',sizeof(char) * size);
printf("total bytes:%d bytes \n",sizeof(char) * size);
// 随机生成字符串
for(n=0; n<size; n++){
buffer[n] = 'a';
// printf("%c",buffer[n]);
}
printf("\n");
buffer[size+1]='\0';
// printf ("随机生成的字符串为:%s\n",buffer);
printf("wait about 1800s....\n");
sleep(1800);
free(buffer); // 释放内存空间
printf("clean up....\n");
return 0;
}
mmap
#cat mmap_1g.c
#include<stdio.h>
#include<sys/mman.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 1024*1024*1024
#define GB 1
int main(int argc,char* argv[]) {
char *p;
int i=1;
for (i=1;i<=GB;i++) {
if ((p = (char *)mmap(NULL,SIZE, PROT_READ |
PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0)) == (void *)-1) {
perror("mmap");
}
memset(p,'c',SIZE);
printf("Get %d GB...\n",i);
}
sleep(3000);
return 0;
}
mmap,malloc分配随机内存的更多相关文章
- malloc分配的内存空间是连续的吗
1.linux内核管理内存空间的分配,所有程序对内存空间的申请和其他操作,最终都会交给内核来管理. 2.linux实现的是“虚拟内存系统”,对用户而言,所有内存都是虚拟的,也就是说程序并不是直接运行在 ...
- 关于被malloc分配内存的指针
例如创建了一个链表指针p并为其malloc()分配了内存,那么这个指针指向的地方其实是有数据的. 你可以把p->data打印出来,会发现是一个随机值 因为只是分配内存而没有指定data的值,所以 ...
- malloc分配内存的结构
在C/C++,我们都可以使用malloc进行分配大小,单位是字节. malloc实际分配的内存大小和传入的参数其实是不同的. 实际分配的内存大小>传入的参数大小. malloc分配的内存 ...
- Linux中brk()系统调用,sbrk(),mmap(),malloc(),calloc()的异同【转】
转自:http://blog.csdn.net/kobbee9/article/details/7397010 brk和sbrk主要的工作是实现虚拟内存到内存的映射.在GNUC中,内存分配是这样的: ...
- 堆/栈的比较 以及 malloc/new动态内存的开辟
堆与栈的比较:1.申请方式(1)栈(satck):由系统自动分配.(2)堆(heap):需程序员自己申请(c:调用malloc,realloc,calloc申请 free 来释放),并指明大小,并由程 ...
- c malloc分配内存
php中的内存分配有用类似emalloc这样的函数,emalloc实际上是C语言中的malloc的一层封装,php启动后,会向OS申请一块内存,可以理解为内存池,以后的php分配内存都是在这块内存池中 ...
- malloc分配到一块内存,读写操作时却发生segmentation falt的奇怪问题。
期初现象:malloc一块内存,读写操作时发生segmentation falt.一般来讲malloc倘若失败应该抛出异常,所以malloc返回一个指针后,这个指针应该都是可用的,况且是进行读操作. ...
- C++ 内存、new与malloc分配内存区别?
一关于内存 1.内存分配方式 内存分配方式有三种: (1)从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2)在栈上创建. ...
- malloc(0)分配多少内存?(译文)
原文地址:http://prog21.dadgum.com/179.html 在大多的系统中,这个C的小程序将会吸收全部空闲的内存. ){ ); } 在我们聊malloc(0)之前,让我们看看mall ...
随机推荐
- 【hihocoder 1287】 数论一·Miller-Rabin质数测试
[题目链接]:http://hihocoder.com/problemset/problem/1287 [题意] [题解] 取的底数必须是小于等于n-1的; 那12个数字能通过2^64以内的所有数字; ...
- 【hihocoder 1476】矩形计数
[题目链接]:http://hihocoder.com/problemset/problem/1476 [题意] [题解] 首先不考虑黑格子,计算出一共有多少个矩形: 枚举矩形的大小r×c,这样大小的 ...
- 多个线程作用于同一个runnable对象
多个线程作用于同一个runnable对象 学习了:https://www.cnblogs.com/ligang305/archive/2012/08/10/2632126.html http://as ...
- CentOS 7 安装Nginx做反向代理
题记 须要使用nginx的反向代理功能,測试环境为centos+NGINX 1.8.0. 跳过一些繁琐的问题,直接记录核心 步骤 (1)centos 安装在VM中.因此须要注意网络连接问题 (2)安装 ...
- Oracle学习(十二):存储过程/存储函数
1.知识点 --第一个存储过程 /* 打印Hello World create [or replace] PROCEDURE 过程名(參数列表) AS PLSQL子程序体: 调用存储过程: 1. ex ...
- Sublime Text 2 界面主题 推荐 Flatland
先搜索下THEME-FLATLAND 安装完后在preferences中选择settings-usr { "color_scheme": "Packages/Theme ...
- [ASPX] DotLiquid-Asp.net模板引擎
以前用过一段时间的PHP,感觉非常不错,其中最让我难忘的就是Smarty模板引擎,当时就微微地想Asp.net里有没有像这样的模板引擎呢?不过由于之后的工作内容都用不到,或者说没有想到用模板,这想法也 ...
- Vue.js和Nodejs的关系
首先vue.js 是库,不是框架,不是框架,不是框架. Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. Vue.js 的核心是一个允许你 ...
- 深入理解 python 元类
一.什么的元类 # 思考: # Python 中对象是由实例化类得来的,那么类又是怎么得到的呢? # 疑问: # python 中一切皆对象,那么类是否也是对象?如果是,那么它又是那个类实例化而来的呢 ...
- 9.19[XJOI] NOIP训练37
上午[XJOI] NOIP训练37 T1 同余方程 Problem description 已知一个整数a,素数p,求解 $x^{2}\equiv a(mod p) $ 是否有整数解 Solution ...