windows和linux中程序栈空间
来源:互联网 发布:舞蹈软件下载 编辑:程序博客网 时间:2024/04/26 22:16
一般来说,我们所用的内存有栈和堆之分,其它的我们很少控制,栈的速度快,但是空间小、不灵活;而堆的空间几乎可以满足任何要求、灵活,但是相对的速度要慢了很多,并且在VC中堆是人为控制的,new了就要delete,否则很容易产生内存泄露等问题。
系统 栈的字节数 bits digits 以兆为单位的值
Linux 8192K bytes <=62407 <=18786 linux默认8M(我的好像是10M)
Windows 1024K bytes <=10581 <=3185 (Release Version) windows默认1M
一、VC++程序栈空间的大小
VC++默认的栈空间是1M,有两个方法更改:
a. link时用/STACK指定它的大小,或者在.def中使用STACKSIZE指定它的大小【link选项】
b. 使用控制台命令“EDITBIN”更改exe的栈空间大小。
方法一:STACKSIZE 定义.def文件
语法:STACKSIZE reserve[,commit]
reserve:栈的大小;commit:可选项,与操作系统有关,在NT上指一次分配物理内存的大小
方法二:设定/STACK
打开工程,依次操作菜单如下:Project->Setting->Link,在Category 中选中Output,然后在Reserve中设定堆栈的最大值和commit。
注意:reserve默认值为1MB,最小值为4Byte;commit是保留在虚拟内存的页文件里面,它设置的较大会使栈开辟较大的值,可能增加内存的开销和启动时间。
二、Linux下程序栈空间的大小
linux下非编译器决定栈大小,而是由操作系统环境决定;而在Windows平台下栈的大小是被记录在可执行文件中的(由编译器来设置),即:windows下可以由编译器决定栈大小,而在Linux下是由系统环境变量来控制栈的大小的。
在Linux下通过如下命令可查看和设置栈的大小:
命令: ulimit -a # 显示当前栈的大小 (ulimit为系统命令,非编译器命令)
命令: ulimit -s 32768 # 设置当前栈的大小为32M bytes
- windows和linux中程序栈空间
- linux中程序存储结构和进程的地址空间
- linux和windows 程序
- linux和windows获取/设置栈空间大小
- 查看linux中查看程序使用了多少栈空间及使用了多少堆空间
- Linux程序空间示意图
- Linux程序在Windows中编写解决方案
- 在Windows中开发linux程序
- linux中安装wine运行windows程序
- 如何在linux内核中调用用户空间的程序
- 如何在linux内核中调用用户空间的程序
- 如何在linux内核中调用用户空间的程序
- 如何在linux内核中调用用户空间的程序
- 如何在linux内核中调用用户空间的程序
- Windows和Linux的进程地址空间分布
- linux和windows的进程的虚拟地址空间
- linux和windows的进程的虚拟地址空间
- windows和linux下打包python程序
- 更好地生活--睡眠
- AE开发中实现Control中的各种图形工具的方法
- java访问sql 2008 检索自动生成的键,获得 IDENTITY 值的方法
- jquery ui 简单引用
- QInputDialog::getInt
- windows和linux中程序栈空间
- pdf 文本转换为 java 字符串
- hdu 1381 Crazy Search(hash)
- 如何删除source insight中打开工程的历史记录
- RFT 实用CODE
- HDU 2087剪花布条(简单KMP)
- 范磊C++ 原创笔记 第六章 面向对象
- office2007下载地址
- Python多进程并发操作中进程池Pool的应用