虚拟机参数

一、堆分配参数

-XX:+PrintGC  使用这个参数,虚拟机启动后,只要遇到GC就会打印日志。
-XX:+UseSerialGC  配置串行回收器
-XX:+PrintGCDetails  可以查看详细信息,包括各个区的情况
-XX:+PrintCommandLineFlags  可以将显式或隐式传给虚拟机的参数输出
-Xms  设置Java程序启动时初始堆大小
-Xmx  设置Java程序能获得的最大堆大小
-Xmx20m -Xms5m  示例设置最大堆大小20M,初始堆大小5M

在实际工作中,我们可以直接将初始的堆大小与最大堆大小设置相等,这样的好处是可以减少程序运行时的垃圾回收次数,从而提高性能。

二、新生代的配置

-Xmn:可以设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个参数对系统性能以及GC行为有很大的影响,新生代大小一般会设置整个堆空间的1/3到1/4左右。
  -XX:SurvivorRatio:用来设置新生代中eden空间和from/to空间的比例。含义:-XX:SurvivorRatio=eden/from=eden/to
  -XX:NewRatio:设置新生代和老年代的比例。-XX:NewRatio=老年代/新生代。
  总结:不同的堆分布情况,对系统执行会产生一定的影响,在实际工作中,应该根据系统的特点作出合理的配置,基本策略:尽可能将对象预留在新生代,减少老年代的GC次数。

三、栈配置

Java 虚拟机提供了参数 -Xss 来指定线程的最大栈空间,整个参数也直接决定了函数可调用的最大深度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 虚拟机大致分为系统虚拟机(vmware,可运行完整操作系统的软件平台)和程序虚拟机(jvm,专门为执行当个计算机程...
    MicoCube阅读 4,705评论 0 0
  • 一、跟踪调试参数 1.1 跟踪垃圾回收-读懂虚拟机日志 Java的一大特色就是支持自动的垃圾回收(GC),但是有时...
    端木轩阅读 4,419评论 2 5
  • 原文阅读 前言 这段时间懈怠了,罪过! 最近看到有同事也开始用上了微信公众号写博客了,挺好的~给他们点赞,这博客我...
    码农戏码阅读 11,236评论 2 31
  • Java 虚拟机有自己完善的硬件架构, 如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 屏蔽了与具体操作系...
    尹小凯阅读 5,626评论 0 10
  • 这是 chaim “ 365 日写作计划”第 11 天的写作内容。 大年初二,开始走亲戚。 在农村,过去走亲戚一般...
    chaim阅读 1,603评论 0 0

友情链接更多精彩内容