请解释jvm中Xms和Xmx参数的使用。它们的默认值是什么?
当前回答
您可以在IDE中指定它。例如,对于运行配置→VM参数中的Eclipse。您可以输入-Xmx800m -Xms500m as
其他回答
这个问题本身已经在上面讨论过了。 只是添加了部分默认值。
对于http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Xmx的默认值取决于平台和系统中可用的内存量。
运行命令java -X,你将得到所有-X选项的列表:
C:\Users\Admin>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xdiag show additional diagnostic messages
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size.........................
-Xmx<size> set maximum Java heap size.........................
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
-XshowSettings show all settings and continue
-XshowSettings:all show all settings and continue
-XshowSettings:vm show all vm related settings and continue
-XshowSettings:properties show all property settings and continue
-XshowSettings:locale show all locale related settings and continue
-X选项是非标准的,如果有更改,恕不另行通知。
我希望这将帮助您理解Xms、Xmx以及许多其他最重要的东西。:)
-Xms是启动时的初始堆大小,但是,在工作过程中,由于用户不活动或GC迭代,堆大小可能小于-Xms。 这不是所需的堆大小的最小值。
-Xmx是堆的最大大小
标志Xmx指定Java虚拟机(JVM)的最大内存分配池,而Xms指定初始内存分配池。
这意味着您的JVM将以Xms大小的内存量启动,并且能够使用最大Xmx大小的内存量。例如,启动如下所示的JVM将使用256 MB内存,并允许进程使用最多2048 MB内存:
java -Xms256m -Xmx2048m
内存标志还可以指定不同的大小,例如千字节、兆字节等等。
-Xmx1024k
-Xmx512m
-Xmx8g
Xms标志没有默认值,Xmx通常的默认值是256 MB。这些标志的常见用途是当您遇到java.lang.OutOfMemoryError时。
在使用这些设置时,请记住这些设置是针对JVM的堆的,并且JVM可以并且将使用比分配给堆的大小更多的内存。来自Oracle的文档:
请注意,JVM使用的内存不仅仅是堆。例如,Java方法、线程堆栈和本机句柄分配在与堆分开的内存中,以及JVM内部数据结构。
您可以在IDE中指定它。例如,对于运行配置→VM参数中的Eclipse。您可以输入-Xmx800m -Xms500m as
推荐文章
- 将JSON字符串转换为HashMap
- web - inf在Java EE web应用程序中用于什么?
- Java 8: Lambda-Streams,过滤方法与异常
- 将JsonNode转换为POJO
- 如何查看IntelliJ中的编译错误列表?
- Java SimpleDateFormat("yyyy-MM-dd' t ' hh:mm:ss' z '")给出的时区为IST
- 杰克逊克服下划线,支持骆驼案
- 为什么ARC仍然需要@autoreleasepool ?
- List、List<?>, List<T>, List<E>, List<Object>
- 在Java中转换字符串到日历对象
- 在java中使用wait()和notify()的简单场景
- 增强的for循环中的Null检查
- c# vs Java Enum(适合c#新手)
- 如何在不强制转换的情况下将double转换为long ?
- for循环和for-each循环在性能上有区别吗?