我正在尝试分配Netbeans
超过1 GB RAM的jvm,但没有成功。
我有一个非常庞大的maven项目,并且在所有项目开放后netbeans立即失去记忆。
我正在使用Gentoo linux
:
Linux myHost 3.2.12-gentoo #3 SMP Mon Jul 2 14:27:56 CEST 2012 i686
Intel(R) Xeon(R) CPU E31245 @ 3.30GHz GenuineIntel GNU/Linux
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 129570
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 129570
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
我的盒子的记忆是:
# cat /proc/meminfo
MemTotal: 16585504 kB
MemFree: 11731232 kB
...
当我设置-J-Xmx3024m
时,我会收到以下消息:
/opt/netbeans-7.2/bin/netbeans
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
谢谢!
答案 0 :(得分:4)
您可以参考Maximum Java heap size of a 32-bit JVM on a 64-bit OS,了解如何确定最大堆大小的限制。这并不意味着如果你的盒子上有99GB的RAM,你可以将90Gigs分配给JVM
此外,它取决于你有多少内存,你的操作系统,然后netbeans,你的服务器,他们也需要一些内存。您只能为JVM分配可用的内存量
消息Could not reserve enough space for object heap
表示3024 MB
无法分配。尝试减少它
看起来像在Linux上,每个进程的最大允许内存是3gigs。虽然你不能将所有内容分配给jvm堆,因为它也需要内存用于premGem等。我在上面提到的帖子......那里的帖子说,他用2.2 gb成功了。