在Linux中启动默认堆大小?

时间:2010-11-26 21:15:23

标签: c linux heap glibc

ulimit -s显示默认的堆栈大小限制

是否有启动默认大小?

4 个答案:

答案 0 :(得分:5)

没有

在32位Linux中,每个进程都可以看到连续的4GB空间。其中大部分未映射到真实RAM,但会在使用时映射。

在64位中它类似但更大。

答案 1 :(得分:5)

ulimit -s不是“默认堆栈大小”。这是堆栈大小限制。您还可以使用ulimit命令设置各种其他限制,并且每个限制都有“软”限制(应用程序可以根据需要覆盖)和“硬”限制(由OS强制执行) ,除非你有root用户,否则一旦设置就不能取消设置。

答案 2 :(得分:1)

我不知道默认设置堆限制的任何发行版。您可以使用" ulimit -a"进行检查,您或您的系统管理员可以在/etc/security/{limits.conf,limits.d}中设置一个,这样您可能希望在那里查看是否有一个已经确定了。

答案 3 :(得分:0)

没有堆限制,你的应用程序可以在32位机器上分配3G vm(虚拟内存),但这并不意味着应用程序有3G物理内存可用,取决于你的内核的OOM策略,它将被杀死内核的OOM(Out-Of-Memory)管理器根据这些内存的使用速度/速度。