想起这玩意,是今天在玩cmake的时候触发的,cmake在生成vs项目时,默认会使用/STACK:10000000,将程序堆栈设成10m。
突然想到程序栈,函数栈的问题。
由于操作系统,c语言学习良久,这两个东东到还真未必十分明了。
思索了一下,大致的关系的应该是一个程序一个栈,函数堆栈是在程序进入函数时,动态的在程序栈上分配的,所以,制定函数堆栈大小应该是没有意义的,比如在递归函数中,函数栈可能很大,这时如果按照一般情况下指定了较小的函数栈,那死都不知道怎么死的。当然,编译期间应该也是不知道函数栈大小的。
指定程序栈大小,要说有意义,也就是在内存比较少的情况下,节约点内存吧。可能是这样,虽然每个程序在运行时,操作系统会为其分配4g的内存空间,当然,大部分是不会真正分配的。但是程序堆栈,由于是常用之物,所以,一旦定义了程序堆栈大小,那么操作系统在载入程序时,应该会至少分配该程序设置的程序栈大小,也就是说,如果对一个helloworld程序设置了10m的程序栈,那么即使他根本不需要什么内存,操作系统还是会实际分配至少10m的内存的给他,从而造成浪费。如果情景属实,那可以通过任务管理器来验证。
这个有待验证。
总归,分配10m的程序栈,应该算是比较大的了,cmake不至于会往小的分。
分享到:
相关推荐
Windows XP 平台下利用cmake2.4配置VC6.0和VTK。图文并茂,做的我很辛苦。
VC6下用cmake配置VTK图文教程
opencv-3.4.1-vc14_vc15试用与vs2017版本,官网上下载太慢了,这个快很多
cmake安装程序
1、设置交叉编译之前,必须在CMakeList.txt前面加上这样一句,这样CMake才会认为你是要交叉编译: SET(CMAKE_SYSTEM_NAME Linux) 其中Linux是要编译过去的平台,如果你是在Linux下交叉编译Window的东西,就要写成...
采用CMAKE和VC++编译opencv3.0.0版本的流程 opencv3.0.0以后会采用高版本的VC++,为了使用VC2010及以下,必须自己编译,这是编译的方法.doc
OTB 是一个有名的开源高分辨率遥感影像处理库,采用了最新的C++技术和新的软件框架。它的最大亮点是将医学影像处理技术有效地融合在遥感图像处理中。
cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 ...
使用CMake构建跨平台应用程序,论文,讲解的相对细致,共享给大家。比看Ken Martin,Bill Hoffman编著的英文版《Mastering CMake 》要快些。
cmake_install.cmake
安装程序会自动将CMake相关的文件和依赖项安装到合适的目录,并设置必要的环境变量和系统路径。 通过安装cmake-3.23.2-windows-x86_64.msi,您可以快速开始使用CMake进行Windows平台上的项目构建,利用其强大的功能...
CMake Practice 学习cmake经典指南 CMake Practice 学习cmake经典指南 CMake Practice 学习cmake经典指南
cmake菜谱中文版, cmake practice 很好的cmake入门资料
cmake cmake cmake cmake cmake cmake cmake cmake cmake
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程) 银河麒麟桌面操作系统V10/V10SP1版本-arm架构cmake离线包; 内核: V10: 4.4 V10SP1: 5.4 如需其他离线包可私信我。
step3:利用cmake-gui手动地设置OpenCV_DIR来指向包含库文件的路径 1.终端输入sudo apt-get install cmake-gui 安装gui 2.文件夹下终端输入 cmake-gui 进入gui页面 3.改变路径到指定文件夹 4.点击Add Entry Name...
CMake实战主要讲解如何利用cmake工具在服务器领域构建c/c++工程,当然在不同平台上的很多工具都用cmake构建,熟悉掌握cmake的使用,可以更深入的了解代码编译深层的东西
cmake_test
cmake大全,详细介绍了cmake的安装、配置、使用;可谓是不可多得好书,网上很多只介绍了一部分,这本书从基础到高级,都有介绍