Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定初始堆和最大堆的大小_Java_Eclipse_Jvm_Heap - Fatal编程技术网

Java 如何确定初始堆和最大堆的大小

Java 如何确定初始堆和最大堆的大小,java,eclipse,jvm,heap,Java,Eclipse,Jvm,Heap,我想在EclipseIndigo中更改初始堆(-xms)和最大堆(-xmx)大小,但我不知道必须为堆分配的正确大小。在确定与所用的应用程序相匹配的大小方面有哪些考虑?有几个要考虑的事情。 首先,您说要“更改”堆和最大堆的初始大小。所以,问题很简单:你为什么需要它?例如,不久前我不得不将IntelliJ IDEA的堆设置更改为更高的值,因为它无法处理我的项目。或者,您是否有特定的理由更改堆大小 Eclipse的堆设置可以位于Eclipse.ini文件中。至少在我的Eclipse Juno中,Ecl

我想在EclipseIndigo中更改初始堆(-xms)和最大堆(-xmx)大小,但我不知道必须为堆分配的正确大小。在确定与所用的应用程序相匹配的大小方面有哪些考虑?

有几个要考虑的事情。

首先,您说要“更改”堆和最大堆的初始大小。所以,问题很简单:你为什么需要它?例如,不久前我不得不将IntelliJ IDEA的堆设置更改为更高的值,因为它无法处理我的项目。或者,您是否有特定的理由更改堆大小

Eclipse的堆设置可以位于Eclipse.ini文件中。至少在我的Eclipse Juno中,Eclipse.ini包含:

-Xms40m
-Xmx512m
所以,堆的初始大小是40MB,但它可以调整大小到512MB。检查您的eclipse.ini-数字是否相同

而且,正如我之前所问的,您能告诉我,为什么要更改堆设置吗

编辑

Eclipse Wiki上关于如何更改的精彩教程。

初始堆大小 机器上物理内存的1/64或某些合理的最小值中的较大值。在J2SE5.0之前,默认的初始堆大小是一个合理的最小值,它因平台而异。您可以使用-Xms命令行选项覆盖此默认值

最大堆大小 物理内存的1/4或1GB中的较小者。在J2SE5.0之前,默认的最大堆大小是64MB。您可以使用-Xmx命令行选项覆盖此默认值

你可以通过

export _JAVA_OPTIONS=“-Xmx1g” java-jarjconsole.jar& 拾取的JAVA选项:-Xmx1g

Setup JAVA_选择作为系统变量,包含以下内容:

JAVA_OPTS=“-Xms256m-Xmx512m”

之后,在命令提示符中运行以下命令:


SET JAVA_OPTS=“-Xms256m-Xmx512m”

取决于您的应用程序在我的应用程序中,有处理时间的计算。处理时间的某些值与其他值不同(例如:第一个值=20123秒,第二个值=20899秒)。可能这是因为处理数据不稳定。为了获得良好的性能,我只知道应该使用正确的设置设置堆大小,并将垃圾收集器设置为并行。如果我将堆大小设置得太高,系统将挂起或应用程序的性能较差。如果我将堆大小设置得太低,就会出现“内存不足”错误。回到我的问题,如何获得初始堆和最大堆的正确大小?在这种情况下,似乎只有一个选项:您必须使用不同的参数测试堆大小,并尝试找出哪些堆设置最适合您。但是您如何知道堆大小的最佳设置?有什么迹象表明我需要知道这是否是堆大小的良好设置?你能告诉我关于堆大小设置的参数吗?好吧,有几件事表明你的内存有问题。如果您得到的是“java.lang.OutOfMemoryError:PermGen space”,那么您的应用程序运行缓慢—您必须增加内存大小。至少在我的JBoss服务器中,我有以下设置:-Xms128m-Xmx512m。为了确定堆的最佳设置,您可以使用探查器,如JProfiler或VisualVM。