1. Linux中进程空间的分配情况如下:
2. 进程的堆栈大小:
(1)栈大小:
- 32位Windows,一个进程栈的默认大小是1M,在vs的编译属性可以修改程序运行时进程的栈大小
- linux下:ulimit -s 查看并修改默认栈空间大小,8M(可使用命令“ulimit -s 字节数”:临时修改栈空间大小,如下图所示)
(2)堆大小
堆的大小理论上 ≈ 进程虚拟空间大小 - 内核虚拟内存大小。
- 32位windows下,进程的高位2G留给内核,低位2G留给用户,所以进程堆的大小小于2G。
- Linux下,进程的高位1G留给内核,低位3G留给用户,所以进程堆大小小于3G。