因此,当我在具有128 GB RAM的服务器上执行linux命令(例如cat
命令)时,假设当前没有使用此RAM,则所有内存都是免费的。 (我意识到这种情况永远不会发生,但这就是为什么它会成为一个例子)
1)此命令是否会以128 GB的堆空间执行?或者它是由我用来决定从可用的128 GB分配多少堆空间的Linux发行版?
2)如果是这样,是否有另一个命令行参数可以与cat
命令一起传递以保留比系统标准更多的堆空间?
编辑:3)有没有办法可以确定为cat
命令(或任何命令)分配多少堆空间,最好是内置命令行解决方案,而不是外部应用程序。如果不可能请说出来,我只是好奇。
答案 0 :(得分:0)
由内存分配器(通常在libc中找到)决定分配多少堆。 glibc的allocator不使用任何环境变量,但其他替换可能。
答案 1 :(得分:0)
启动程序时,会为程序分配一些内存;但是,这个内存量并不是程序允许使用的限制。无论何时请求更多内存,都可以在系统耗尽所有内存之前将其授予。