- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
堆栈分配有很多相关的问题是可以理解的
What and where are the stack and heap?
Why is there a limit on the stack size?
但是在各种 *nix 机器上我可以发出 bash 命令
ulimit -s unlimited
或 csh 命令
set stacksize unlimited
这如何改变程序的执行方式?对程序或系统性能是否有任何影响(例如,为什么这不是默认设置)?
如果涉及更多系统细节,我主要关心的是在 x86_64 硬件上运行的 Linux 上使用 GCC 编译的程序。
最佳答案
当您调用函数时,会在堆栈上分配一个新的“命名空间”。这就是函数可以具有局部变量的方式。随着函数调用函数,函数又调用函数,我们不断在堆栈上分配越来越多的空间来维护这种深层的命名空间层次结构。
为了限制程序使用大量堆栈空间,通常通过 ulimit -s
设置限制。如果我们通过 ulimit -s unlimited
删除该限制,我们的程序将能够继续为不断增长的堆栈占用 RAM,直到最终系统完全耗尽内存。
int eat_stack_space(void) { return eat_stack_space(); }
// If we compile this with no optimization and run it, our computer could crash.
通常,使用大量堆栈空间是偶然的,或者是非常深的递归的症状,可能不应该过多地依赖堆栈。因此堆栈限制。
对性能的影响很小,但确实存在。使用 time
命令,我发现消除堆栈限制将性能提高了几分之一秒(至少在 64 位 Ubuntu 上)。
关于linux - "ulimit -s unlimited"有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471564/
我在执行我的程序时遇到了太多打开文件异常。通常这些以下列形式出现: org.jboss.netty.channel.ChannelException: Failed to create a selec
所以我偶然发现了这个名为 Unlimited Detail 的"new"图形引擎/技术。 . 这似乎很有趣,因为它是真的而不是假的。 他们有一些解释该技术的视频,但他们只是触及了表面。 你怎么看待这件
我想创建一个游戏,它有一个无尽的(实际上是一个非常大的)世界,玩家可以在其中移动。我是否会抽出时间来实现游戏是一回事,但我发现这个想法很有趣,并且希望就如何实现它提供一些意见。 关键是要有一个所有数据
当我在我的机器上输入“limit”时: 输出将是: cputime unlimited filesize unlimited datasize unlimited stack
我想允许用户为 Android 应用程序首选项输入(非预定数量的)值。想到的现有示例是各种智能手机(iPhone、HTC Android 等)上的闹钟应用程序,用户可以在其中添加闹钟时间。* 谁能想出
我最近需要将 .dmp 导入到我创建的新用户中。我还使用以下命令为用户创建了一个新表空间: create tablespace my_tablespace datafile 'C:\My\Oracl
我的 mysql 数据库中有大量数据(500 行),当我尝试获取所有这些数据时,数据并非来自数据库。 工作代码 代码无效 也许Mysql数据库在用户选择大数据时有一些限制?! 谁遇到过这个? 最
如果我想创建一个每个内部数组具有不同大小的数组,我该如何声明它?int[][] arr = new int [X][]; (x 是某个数字)当我尝试使用它并将内容放入数组中时,它给我 null。 但是
我正在阅读 java 8 Random 中的新增强功能类并且重复使用了这个术语有效无限流。 考虑 IntStream ints(int randomNumberOrigin, int randomNu
我继承了一些我需要维护的代码,这些代码有时可能不太稳定。以前的人已经无法查询为什么他们在无限堆栈集的环境中运行应用程序,我很好奇这会产生什么影响?该应用程序似乎有一些我们无法发现的不可预测的内存错误,
我正在尝试为从我的 rootfs 生成 coredump 文件提供支持,我已经用“ulimit -c unlimited”命令和“* hard core -1”修改了/etc/limits 文件,现在
我如何从 Elasticsearch 中获取所有结果,因为结果只显示限制为 10 个。我有这样的查询: @data = Athlete.search :load => true do
设置 Java 不提供对 JCE 无限强度策略文件的开箱即用支持 这会阻止用户使用 AES-256,这是广泛使用的加密标准中最大的 key 长度 不包括政策文件会导致很多问题: Unexpected
堆栈分配有很多相关的问题是可以理解的 What and where are the stack and heap? Why is there a limit on the stack size? Si
我正在使用 Orchard 1.6 并且正在为我的模块创建部件。我的迁移文件中创建特定表的部分是: // Creating table SessionInformationRecord
我正在尝试创建一个多层菜单,对其可以分支的程度没有限制 - 例如食物->水果->圆形->颜色等... 我不知道如何用 SQL 表示关系,也不知道如何查询数据。 我想过这样做: MainMenu: ID
有没有办法制作一个纯CSS和html无限嵌套的 Accordion ?我以下面为基础,但是当我尝试将 Accordion 嵌套在 Accordion 中时,它似乎不起作用。例如, 主要 Accordi
我现在正在帮助编写一个程序,在 Windows 上,该程序运行良好。在 Mac 上,将框架目录更改为唯一合适的位置后,出现此错误: 运行: A fatal error has been detecte
我对 ES_AUTOHSCROLL 设置有不良 react 。 我想做的是创建一个随其中的文本调整大小的编辑。但是,每当用户输入超过编辑结束时,我都会遇到问题。 如果没有 ES_AUTOHSCROLL
谁能给我解释一下如何安装 Unlimited Strength Jurisdiction Policy Files。我从 Oracle website 下载了 .jar 文件但我在安装它们时遇到了问题
我是一名优秀的程序员,十分优秀!