本问题已经有最佳答案,请猛点这里访问。

请解释在JVM中使用Xms和Xmx参数。它们的默认值是什么?

当使用-Xmx128m -Xms64m时,它可以在EDOCX1和1ΩRES MEM附近高峰期,但是当使用EDCOX1,2时,它可以在EDCOX1,3,RES MEM周围用JAVA 8达到峰值,最好的办法是强调GC,看看发生了什么。

标志Xmx指定了Java虚拟机(JVM)的最大内存分配池,而EDCOX1(1)指定了初始内存分配池。

这意味着,您的JVM将以Xms的内存量启动,并且最多可以使用Xmx的内存量。例如,像下面这样启动一个JVM将以256 MB的内存启动它,并允许进程使用多达2048 MB的内存:

java -Xms256m -Xmx2048m

内存标志也可以以不同的大小指定,如千字节、兆字节等。

-Xmx1024k

-Xmx512m

-Xmx8g

Xms标志没有默认值,Xmx的默认值通常为256 MB。这些标志的一个常见用法是当您遇到一个java.lang.OutOfMemoryError时。

使用这些设置时,请记住这些设置是针对JVM堆的,并且JVM可以/将使用比分配给堆的大小更多的内存。从Oracle的文档中:

Note that the JVM uses more memory than just the heap. For example Java methods, thread stacks and native handles are allocated in memory separate from the heap, as well as JVM internal data structures.

所以,当内存使用超过xmx时,我们会从内存异常中获取jvm。

是的,没错。当它试图超过这个值时,尽管它可能会收集垃圾以释放足够的内存。如果仍然没有足够的内存来满足请求,并且堆已经达到最大大小,则将发生OutOfMemoryError。

当我使用forkjoin框架时,我的计算机崩溃了,因为它占用了太多的内存。在OpenJDK上,默认情况下内存是否可能没有硬限制?

如Java-XMX 1G所阐明的,平均值是1 GB还是2 ^ 30 B?,表示通过-Xms256m启动的内存量的明确方法是"256mib",而不是"256mb",因为它使用的是二进制幂而不是10的幂。参见en.wikipedia.org/wiki/binary_前缀。此外,由于为一个额外的幸存者空间池预留了一些不可用空间,根据Runtime.getRuntime().maxMemory()的规定,实际可用的内存量小于通过-xmx指定的值。

与堆大小有关的常见错误的有用指南:Blog .PulgU.COM/Java/6 Con on Error在JavaHeAP-SI和ZWNJ;和8203;ZE

-xmx8g G代表什么?

"xmx的默认值通常为256MB",这是不太可能的,这会使大多数应用程序崩溃-请参见:stackoverflow.com/questions/4667483/…

为什么我设置XMX= XMS= 8G,我的Java进程不消耗8G,但它启动时的内存要小得多,这是我从Top-REST观察到的。它不应该至少由XMS内存分配吗?

杰克,我认为256MB是Java 6或7的默认值。Java 8 +使用不同的默认值。

运行命令java -X,您将得到所有-X选项的列表:

C:\Users\Admin>java -X

-Xmixed           mixed mode execution (default)

-Xint             interpreted mode execution only

-Xbootclasspath:

set search path for bootstrap classes and resources

-Xbootclasspath/a:

append to end of bootstrap class path

-Xbootclasspath/p:

prepend in front of bootstrap class path

-Xdiag            show additional diagnostic messages

-Xnoclassgc       disable class garbage collection

-Xincgc           enable incremental garbage collection

-Xloggc:    log GC status to a file with time stamps

-Xbatch           disable background compilation

-Xms        set initial Java heap size.........................

-Xmx        set maximum Java heap size.........................

-Xss        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以及其他许多最重要的事情。:)

您可以在您的IDE中指定它。例如,对于运行配置→vm参数中的Eclipse。您可以输入-Xmx800m -Xms500m作为

在OSX上的RubyMine中,它位于帮助菜单>编辑自定义虚拟机选项中。

这不能回答问题。问题是它们的用途,而不是如何设置它们。

这个问题本身已经在上面讨论过了。只添加部分默认值。

根据http://docs.oracle.com/cd/e13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionx.html

xmx的默认值将取决于平台和系统中可用的内存量。

对于其他JVM(除了jrockit),请参阅本文以确定JVM的默认xmx/xms值:stackoverflow.com/questions/4667483/…

java 启动xms_关于java:启动JVM时-Xms和-Xmx参数是什么?相关推荐

  1. java虚拟机启动参数Xms,启动JVM时,-Xms和-Xmx参数是什么?

    Please explain the use of Xms and Xmx parameters in JVMs. What are the default values for them? 解决方案 ...

  2. Java –什么是-Xms和-Xmx参数?

    在Java中, -Xms设置初始Java堆大小,而-Xmx设置最大Java堆大小. 1.一些java -Xms -Xmx示例: # Start with 128MB of memory, and al ...

  3. JVM调优之-Xms与-Xmx参数

    -Xms参数与-Xmx参数 -Xms参数与-Xmx参数分别是设置JVM的堆内存的初始大小和最大大小 -Xmx2048m 等价于-XX:MaxHeapSize=2048m,设置JVM最大堆内存为2048 ...

  4. java -xmx_Java中,启动JVM时,Xms和Xmx参数是什么? - Break易站

    Xmx指定了Java虚拟机(JVM)的最大内存分配池,同时Xms指定了初始内存分配池.就是JVM默认堆的大小. 这意味着您的JVM将以Xms大量内存启动,并且将能够使用最Xmx大量的内存.例如,像下面 ...

  5. JAVA 启动JVM时,Xms和Xmx参数

    Xmx指定了Java虚拟机(JVM)的最大内存分配池,同时Xms指定了初始内存分配池.就是JVM默认堆的大小. 这意味着您的JVM将以Xms大量内存启动,并且将能够使用最Xmx大量的内存.例如,像下面 ...

  6. JVM中-Xms和-Xmx设置相同的好处

    概念解释: -Xms: 初始堆大小 默认物理内存的 1/64(小于1GB) 空余堆大小小于 40% 时,JVM就会增大堆直到 -Xmx 的最大限制-Xmx: -Xmx 最大堆大小 默认物理内存的 1/ ...

  7. Java 面试题(3)—— JVM

    JVM的内存结构. JVM主要结构:堆内存.栈.方法区,程序计数器,永久代)(jdk 8采用元空间替代). 堆内存又分成年轻代和年老代. 年轻代由三部分组成,Eden.From Survivor 和 ...

  8. 阿里巴巴Java开发手册 (Alibaba Java Coding Guidelines)

    参考资料: 阿里巴巴Java开发手册  https://www.cntofu.com/book/78/index.html 一.编程规约 ##(一)命名风格 [强制]代码中的命名均不能以下划线或美元符 ...

  9. JVM调优:运行参数,内存模型,mat、jps、jstat、jmap、jstack、jvisualvm工具的使用

    JVM调优 - 工具篇 作者:张学亮 讲解内容 了解下我们为什么要学习JVM优化 掌握jvm的运行参数以及参数的设置 掌握jvm的内存模型(堆内存) 掌握jamp命令的使用以及通过MAT工具进行分析 ...

最新文章

  1. [转]redis的三种启动方式
  2. 成功解决TypeError: a bytes-like object is required, not 'str'
  3. Python的单例模式
  4. Boost:矩阵转置的测试程序
  5. java学习(99):车站卖票问题
  6. mysql 3_mysql3
  7. ZABBIX 3.2.7 (源码包)安装部署
  8. 小米5s升级Android8,小米5s、小米5s Plus升级8.0提前,好消息!
  9. c++通过pybind11制作模型python接口,生成python调用包
  10. You must install libopus-dev to build mod_opus
  11. 【ANSYS命令流】Workbench中施加流体渗透压力载荷(超详细)
  12. 2016中国app年度排行榜:十大行业、25个领域、Top 500 和2017趋势预测
  13. BZOJ 2563: 阿狸和桃子的游戏
  14. Spark 推测执行 /spark.speculation=true /spark.speculation.quantile=0.75/spark.speculation.multiplier=1.5
  15. python (win32com) 批量删除 word (docx, doc) 中所有页眉、页脚 (Word.Application, Word.Basic)
  16. 基于Python的离线OCR图片文字识别(四)——支持txt文件指定路径保存
  17. OpenCV+百度云人脸识别项目及源码
  18. 资深项目经理推荐的五款项目管理工具
  19. java interface接口和多继承
  20. maven基础:mvn命令常用参数整理;如:-am构建指定模块,同时构建指定模块依赖的其他模块

热门文章

  1. element ui 表单验证残留提示处理
  2. Element UI的表格table列的宽度自适应设置
  3. chstr php,PHPWind与Discuz截取字符函数substrs与cutstr性能比较
  4. Javascript与未来十年的数据编程
  5. 小心!上万个 Android 和 iOS 应用正在泄露你的数据
  6. GitHub 超 20000 Star,最火开源视频库 FFmpeg 这 20 年!
  7. 红帽将停止支持 CentOS 8;​2020 百度沸点揭晓年度知识热词;Qt 6.0 发布|极客头条...
  8. 中国实现量子计算第一个里程碑:原型机 “九章”比最快的超级计算机快一百万亿倍...
  9. 腾讯云坚持“云+数据库”转型,看好多模数据库未来发展
  10. Linux Kernel 5.8 发布,华为内核代码贡献全球持续领先