VS编译的程序出现内存不够的解决办法

LINK的/STACK选项 

  /STACK   :reserve[,commit] 

  reserve:栈总大小 

  commit:程序开始时系统提供的实际内存量 

  缺省:1M,8K 

  参数为0取缺省值 

 

 

今天在VC++.NET中运行聚类程序,老是说Stack   OverFlow,  后来才发现是栈空间太小了。

单单保存100个网页的数据量就比较大了。

把堆栈的大小已经设置为: 

  堆栈保留大小为:100000000 

  堆栈提交大小为:   100000000; 

就没问题了。

VS修改:

 

 

在 Visual Studio 开发环境中设置此链接器选项

  • 打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性
  • 单击“链接器”文件夹。
  • 单击“系统”属性页。
  • 修改下列任一属性:
    • 堆栈提交大小
    • 堆栈保留大小 

问题解答:

 

方法一:STACKSIZE   定义.def文件

 

     语法:STACKSIZE reserve[,commit]

     reserve:栈的大小;commit:可选项,与操作系统有关,在NT上只一次分配物理内存的大小

 

方法二:设定/STACK

     VC6.0修改:

     打开工程,依次操作菜单如下:Project->Setting->Link,在Category 中选中Output,然后

在Reserve中设定堆栈的最大值和commit。

 

注意:reserve默认值为1MB,最小值为4Byte;commit是保留在虚拟内存的页文件里面,它设置的较

大会使栈开辟较大的值,可能增加内存的开销和启动时间

你可能感兴趣的:(VS编译的程序出现内存不够的解决办法)