`
isiqi
  • 浏览: 16048436 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

程序栈,函数栈,cmake对vc默认设置程序堆栈10m的浅见

阅读更多

想起这玩意,是今天在玩cmake的时候触发的,cmake在生成vs项目时,默认会使用/STACK:10000000,将程序堆栈设成10m。

突然想到程序栈,函数栈的问题。

由于操作系统,c语言学习良久,这两个东东到还真未必十分明了。

思索了一下,大致的关系的应该是一个程序一个栈,函数堆栈是在程序进入函数时,动态的在程序栈上分配的,所以,制定函数堆栈大小应该是没有意义的,比如在递归函数中,函数栈可能很大,这时如果按照一般情况下指定了较小的函数栈,那死都不知道怎么死的。当然,编译期间应该也是不知道函数栈大小的。

指定程序栈大小,要说有意义,也就是在内存比较少的情况下,节约点内存吧。可能是这样,虽然每个程序在运行时,操作系统会为其分配4g的内存空间,当然,大部分是不会真正分配的。但是程序堆栈,由于是常用之物,所以,一旦定义了程序堆栈大小,那么操作系统在载入程序时,应该会至少分配该程序设置的程序栈大小,也就是说,如果对一个helloworld程序设置了10m的程序栈,那么即使他根本不需要什么内存,操作系统还是会实际分配至少10m的内存的给他,从而造成浪费。如果情景属实,那可以通过任务管理器来验证。

这个有待验证。

总归,分配10m的程序栈,应该算是比较大的了,cmake不至于会往小的分。

分享到:
评论

相关推荐

    利用cmake2.4配置VC6.0和VTK

    Windows XP 平台下利用cmake2.4配置VC6.0和VTK。图文并茂,做的我很辛苦。

    VC6下用cmake配置VTK图文教程

    VC6下用cmake配置VTK图文教程

    opencv-3.4.1-vc14_vc15程序加cmake程序

    opencv-3.4.1-vc14_vc15试用与vs2017版本,官网上下载太慢了,这个快很多

    cmake安装程序

    cmake安装程序

    CMake交叉编译配置

    1、设置交叉编译之前,必须在CMakeList.txt前面加上这样一句,这样CMake才会认为你是要交叉编译: SET(CMAKE_SYSTEM_NAME Linux)  其中Linux是要编译过去的平台,如果你是在Linux下交叉编译Window的东西,就要写成...

    CMAKE+OPENCV3+VC

    采用CMAKE和VC++编译opencv3.0.0版本的流程 opencv3.0.0以后会采用高版本的VC++,为了使用VC2010及以下,必须自己编译,这是编译的方法.doc

    用CMake对OTB进行配置步骤

    OTB 是一个有名的开源高分辨率遥感影像处理库,采用了最新的C++技术和新的软件框架。它的最大亮点是将医学影像处理技术有效地融合在遥感图像处理中。

    cmake教程 cmake教程 cmake教程

    cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 ...

    使用CMake构建跨平台应用程序-王敏2009.pdf

    使用CMake构建跨平台应用程序,论文,讲解的相对细致,共享给大家。比看Ken Martin,Bill Hoffman编著的英文版《Mastering CMake 》要快些。

    cmake_install.cmake

    cmake_install.cmake

    cmake-3.23.2-windows-x86-64.msi

    安装程序会自动将CMake相关的文件和依赖项安装到合适的目录,并设置必要的环境变量和系统路径。 通过安装cmake-3.23.2-windows-x86_64.msi,您可以快速开始使用CMake进行Windows平台上的项目构建,利用其强大的功能...

    CMake Practice

    CMake Practice 学习cmake经典指南 CMake Practice 学习cmake经典指南 CMake Practice 学习cmake经典指南

    cmake菜谱中文版, cmake practice 很好的cmake入门资料

    cmake菜谱中文版, cmake practice 很好的cmake入门资料

    cmake-3.9.1.zip

    cmake cmake cmake cmake cmake cmake cmake cmake cmake

    CMake中文手册_cmake手册_cmake_

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性

    银河麒麟桌面操作系统V10/V10SP1版本-arm架构cmake离线包

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程) 银河麒麟桌面操作系统V10/V10SP1版本-arm架构cmake离线包; 内核: V10: 4.4 V10SP1: 5.4 如需其他离线包可私信我。

    Ubuntu环境下编译运行OpenCV程序cmake-gui生成可执行文件

    step3:利用cmake-gui手动地设置OpenCV_DIR来指向包含库文件的路径 1.终端输入sudo apt-get install cmake-gui 安装gui 2.文件夹下终端输入 cmake-gui 进入gui页面 3.改变路径到指定文件夹 4.点击Add Entry Name...

    cmake实践_cmake_

    CMake实战主要讲解如何利用cmake工具在服务器领域构建c/c++工程,当然在不同平台上的很多工具都用cmake构建,熟悉掌握cmake的使用,可以更深入的了解代码编译深层的东西

    cmake_test cmake_test cmake_test

    cmake_test

    (cmake最全的书)cmake.pdf

    cmake大全,详细介绍了cmake的安装、配置、使用;可谓是不可多得好书,网上很多只介绍了一部分,这本书从基础到高级,都有介绍

Global site tag (gtag.js) - Google Analytics