我不确定这是否是一个有效的stackoverflow问题!
我在windows xp机器上安装了netbeans。但是这台机器的内存非常有限。由于Netbeans使用大部分内存,我想限制Netbeans使用的内存大小。
从我在page上可以看到的是,我可以在配置文件中使用-J-Xmx256m
开关或–J-XX:MaxPermSize
开关: ./ etc / netbeans。 CONF
所以我改变了这个:
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:MaxPermSize=256m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true"
我尝试了两种选择,但Netbeans要么没有启动,要么在启动时不支持新策略。当它开始时,我在任务管理器中看到内存增加超过指定的256兆字节的netbeans。
我做错了什么?
答案 0 :(得分:1)
首先,您需要了解-XX:MaxPermSize
和-Xmx
空格之间的区别:
-Xmx
指定Java虚拟机(JVM)的最大内存分配池,其中包含:
-XX:MaxPermSize
是包含虚拟机本身的所有反射数据的池,例如类和方法对象。对于使用类数据共享的Java VM,这一代将分为只读区域和读写区域。
第二:你的netbeans_default_options
-J-Xss2m
netbeans_default_options="-J-client -J-Xss2m -J-Xms32m ...
您需要将其更改为:
netbeans_default_options="-J-client -J-Xmx256m -J-Xms32m ...// or something like that
答案 1 :(得分:0)
在Java中有更多类型的内存。使用 MaxPermSize ,您将增加permgen内存的最大值,该内存用于存储有关您的类的“静态”信息。您想增加“动态”数据的内存。这就是堆,并且使用了 -J-Xmx 。您可以使用jvisualvm验证您的设置。
所以要增加你的堆尝试类似:
-J-Xmx512m
如果您使用的是32位Java,那么您的内存在某种程度上仅限于我认为1g。如果您使用无效(太大)设置,Netbeans将无法启动。
内存Netbeans在其内存显示中显示的是PermGenSpace和Heap的添加。再次:查看jvisualvm以控制每种内存类型的已使用设置。