我正在阅读netbeans 6,您不必设置最大堆大小,它只会查看您的计算机以获取该信息.
我的系统有8演出的ram,但我的应用程序只有64mb可以玩,而且内存不足.
我做了一个:
的System.out.println(调用Runtime.getRuntime()maxMemory());
它是66 650 112字节(63.5625兆字节).
我的netbeans.config:
-J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m
我试图更改这些数字,但然后netbeans无法加载(JVM错误).
如何将最大大小增加到1 GB?
编辑:回应评论
如果您的应用程序特定需要堆空间,则可以设置您希望它使用的虚拟机参数.例如,我有一个默认的最大堆大小,我在默认运行配置中使用.对于运行配置,我也有更大的最大值,我知道我将处理更多数据.
您可以通过以下几种方式访问运行配置:
右键单击项目(在"项目"下),然后选择"属性".单击"运行"并注意右侧显示的"VM选项"文本字段.如果向该字段添加"-Xmx1024",则允许堆增长到1024 MB的最大大小.
您还可以直接从"运行"工具栏中的组合框自定义运行配置.如果单击组合框,您将看到最后一个选项是"自定义".这将显示相同的对话框.
请务必注意,设置最大堆大小不会立即分配那么多内存.在我目前的工作中,我更愿意允许堆在必要时增长到最大值,但是,如果要成为机器上其他服务的好邻居,我允许它在适合的情况下保留一小堆.但是,您可以使用-Xms选项指定堆大小应从最大可能大小开始.
例如,如果将虚拟机选项设置为"-Xms1024m -Xmx1024m",则应用程序将在启动时获取整个内存,并在整个运行期间保留它.
结束编辑
如果您想确保Netbeans总是有足够的堆空间,您可以通过以下两种简单方法之一来实现.一种是修改netbeans.conf文件.在我的,原来的行如下:
netbeans_default_options =" - J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize = 32m -J-XX:MaxPermSize = 200m -J-Dapple.laf.useScreenMenuBar = true -J- Dsun.java2d.noddraw =真"
如果您想让Netbeans最多可以使用一个RAM,您可以将行更改为如下所示:
netbeans_default_options =" - J-client -J-Xverify:none -J-Xmx1024m -J-Xss2m -J-Xms32m -J-XX:PermSize = 32m -J-XX:MaxPermSize = 200m -J-Dapple.laf.useScreenMenuBar = true -J-Dsun.java2d.noddraw = true"
其中"-J-Xmx1024m"参数将允许堆增长到1024 meg的大小.
但是,从启动器或快捷方式在运行时为Netbeans设置最大堆更容易.在我的机器上,我有一个启动器直接传递最大堆而不更改配置文件:
/usr/local/netbeans-6.8/bin/netbeans -J-Xmx1024m
随意使用最方便的选择.
此命令行为Java程序提供64Mb初始堆栈和256Mb最大堆大小.
java -Xms64m -Xmx256m jdbc_prog
祝好运!