繁体   English   中英

std :: bad_alloc ulimit

[英]std::bad_alloc ulimit

我正在使用32位Ubuntu 12.04。 RAM为7.7 GB。 当我运行某个进程(用C ++编写)并达到50%的RAM使用率时,这样的进程会抛出一个“std :: bad_alloc”。 奇怪的是堆大小是无限的(命令ulimit -v返回“unlimted”)。 那可能是什么原因?

在大多数32位平台上,进程不可能处理超过4GB(2 ^ 32字节)的虚拟内存。 在32位Linux上,为内核保留了1GB的地址空间,因此用户进程限制为3GB的可寻址内存。

在32位计算机上,即使使用PAE ,单个进程地址空间也不能大于4GB。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM