2

I'm working on a 32bit Ubuntu 12.04. The RAM is 7.7 GB. When I run a certain process (written in C++) and reaches 50% of RAM usage, such process throws a "std::bad_alloc". The strange thing is that heap size is unlimited (command ulimit -v returns "unlimted"). So which can be the cause?

4

2 回答 2

5

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

于 2013-01-10T15:28:01.330 回答
3

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

于 2013-01-10T15:29:27.677 回答