我是Linux新手,对内存限制有疑问。
据我所知,在Windows中,32位版本的操作系统只能使用2.8 GB,但Linux的情况是4 GB还是更低?
我对RHEL5中运行的Java应用程序特别感兴趣。 但是,如果你对其他技术有所了解 - 听听会很棒。
答案 0 :(得分:3)
最多可能是3G字节(但是一些奇怪的内核配置选项可能会提高,可能达到3.3GB)
您可以使用setrlimit(2)系统调用降低可用内存限制(可能通过内置ulimit
bash)
如果你有一个超过4G字节RAM的大铁,安装一个64位分配应该是有意义的。
您也许可以考虑使用例如compiling your Java application ahead of time。 gcj,但该编译器不合时宜,仅支持旧的Java标准;而且我不确定你是否会赢得一些内存空间(可能是几兆字节,因为它的运行时间远小于你的JVM)。
答案 1 :(得分:3)
RHEL5 32位分别为用户进程和内核提供3G / 1G分割。
这意味着单个进程最多只能访问3G地址空间。系统本身可以拥有超过4G的RAM,如果你使用的是PAE内核,所有这些内容都可供内核使用。内核将能够在不同的用户进程之间正确地分配内存。