如何以编程方式增加Java堆大小

hrl*_*hrl 10 java heap size

我有一个用于搜索文件的java桌面应用程序,它通常很快就会达到默认的堆限制.我无法访问将要安装的所有系统,因此我想在应用程序本身中增加JVM堆大小.任何人都可以帮助我如何在我的应用程序中以编程方式执行此操作

Sha*_*Doo 6

将-Xmx设置为一个gig并不意味着JVM将在启动时分配那么多内存.JVM将仅分配-Xms(加上开销),直到需要更多堆空间.您是否需要保护您的用户免受虚拟内存抖动或操作系统内存分配失败的影响?如果没有,只需将Xmx设置为较大的值即可.请注意,Windows 32位JVM通常会忽略大于1.2Gig的Xmx设置,因此最好不要求安全工作.


Tho*_*sen 5

没有这样的标准 API 可以做到这一点。

我建议您使用 Java Web Start 来调用您的应用程序(可用于最新 Sun Java 6 中的本地应用程序),因为它允许您为此指定值。

然后,您可以有三个或四个链接,每个链接都指向完全相同的文件,但堆大小为“微小”、“中”、“大”、“巨大”。


小智 2

请参阅这篇关于增加 java 堆大小的文章:

永久增加java堆大小?

也许您也可以清理代码的某些部分以减少内存使用。

此致