Java虚拟机jvm学习二:常用JVM配置参数
Java虚拟机jvm学习二:常用JVM配置参数
silence88 发表于10个月前
Java虚拟机jvm学习二:常用JVM配置参数
  • 发表于 10个月前
  • 阅读 10
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

一、Trace跟踪参数

二、堆的分配参数

-Xmx –Xms

指定最大堆和最小堆

例如我设置:-Xmx1024m -Xms512m。

1、

	public static void main(String[] args) throws InterruptedException {

		System.out.println("堆最大空间:"+Runtime.getRuntime().maxMemory()/1024/1024+"M");
		System.out.println("堆可用空间:"+Runtime.getRuntime().freeMemory()/1024/1024+"M");
		System.out.println("堆总的空间:"+Runtime.getRuntime().totalMemory()/1024/1024+"M");
	}

运行的结果为:

堆最大空间:910M
堆可用空间:488M
堆总的空间:490M

2、

	public static void main(String[] args) throws InterruptedException {
		
		byte[] b = new byte[1024*1024*600];//600m
		System.out.println("堆最大空间:"+Runtime.getRuntime().maxMemory()/1024/1024+"M");
		System.out.println("堆可用空间:"+Runtime.getRuntime().freeMemory()/1024/1024+"M");
		System.out.println("堆总的空间:"+Runtime.getRuntime().totalMemory()/1024/1024+"M");
	}

运行结果为:

堆最大空间:910M
堆可用空间:229M
堆总的空间:832M

说明:从上面实例可以看出jvm会维持在最小堆的空间上。如果超出了最小堆空间,则相应会增加堆总的空间。

三、栈的分配参数

Xss:

  • 通常只有几百K
  • 决定了函数调用的深度(如果栈空间分配过小,则导致函数调用的深度会不够,因为函数每调用一次就相当于一个栈帧)
  • 每个线程都有独立的栈空间(如果栈空间分配过大,则导致能运行的线程数量会少)
  • 局部变量、参数 分配在栈上
标签: JVM Monitor
共有 人打赏支持
粉丝 7
博文 56
码字总数 71242
×
silence88
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: