malloc能分配多大内存
2017-04-07 18:02
225 查看
直接上代码:
差一个字节不到2G。(运行程序之后直接就出结果,很快)
在Windows7(8G内存)中也运行了一遍:
大概是1.5G。(运行程序之后,循环很慢,大概2、3分钟才出结果)
其实不同操作系统下的malloc、free实现不会有太大差别,执行速度也不会有太大差别,可能是windows7有什么内存管理策略导致同一段代码执行速度缓慢。
#include <stdio.h> #include <stdlib.h> int count=0; void *p=NULL; int main(int argc,char *argv[]) { int blocksize[4]={1024*1024*1024, 1024*1024, 1024, 1}; int i,j; for(i=0; i<4; ++i) { for(j=1; ; ++j) { if( NULL==(p=malloc(count+blocksize[i])) ) { printf("%d\n",j);break; } count+=blocksize[i]; free(p); } } printf("mallocmaxmemory:%d\n",count); return 0; }CentOS7(2G内存)中运行结果:
差一个字节不到2G。(运行程序之后直接就出结果,很快)
在Windows7(8G内存)中也运行了一遍:
大概是1.5G。(运行程序之后,循环很慢,大概2、3分钟才出结果)
其实不同操作系统下的malloc、free实现不会有太大差别,执行速度也不会有太大差别,可能是windows7有什么内存管理策略导致同一段代码执行速度缓慢。
相关文章推荐
- 挑战malloc极限,看看你的系统有多大的内存分配能力
- 挑战malloc极限,看看你的系统有多大的内存分配能力
- 【总结】malloc最多能分配多大的内存空间?
- malloc 最大可以分配多大内存
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free .
- malloc的内存分配之 malloc(0)的内存分配情况
- vs 2010 express 查看malloc能分配多少内存
- FFmpeg函数简单分析:内存的分配和释放(av_malloc()、av_free()等)
- FFmpeg源代码简单分析:内存的分配和释放(av_malloc()、av_free()等)
- C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- malloc(0)分配到的内存大小
- 请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
- C++内存分配秘籍—new,malloc,GlobalAlloc详解
- DLL中用malloc分配了一块内存,但是在exe程序中释放引发的错误:其原因可能是堆被损坏,这也说明 **.exe 中或它所加载的任何 DLL 中有 bug。
- 程序猿之---C语言细节17(求time_t的最大值、strlen求的是长度、malloc分配字符内存细节、switch的中default细节)
- C++内存分配秘籍—new,malloc,GlobalAlloc的区别与详解
- 【转载】malloc内存分配与free内存释放的原理
- C++内存分配秘籍—new,malloc,GlobalAlloc详解
- C++内存分配秘籍—new,malloc,GlobalAlloc详解
- Day25、malloc 内存分配、mmap内存映射、文件的操作(文件描述符、open\close\read)