文档章节

Java虚拟机jvm学习二:常用JVM配置参数

silence88
 silence88
发布于 2017/02/26 20:15
字数 338
阅读 12
收藏 2

一、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
  • 决定了函数调用的深度(如果栈空间分配过小,则导致函数调用的深度会不够,因为函数每调用一次就相当于一个栈帧)
  • 每个线程都有独立的栈空间(如果栈空间分配过大,则导致能运行的线程数量会少)
  • 局部变量、参数 分配在栈上

© 著作权归作者所有

共有 人打赏支持
silence88
粉丝 7
博文 71
码字总数 72855
作品 0
深圳
程序员
JDK的命令行工具系列 (二) javap、jinfo、jmap

javap: 反编译工具, 可用来查看java编译器生成的字节码 参数摘要: -help 帮助 -l 输出行和变量的表 -public 只输出public方法和域 -protected 只输出public和protected类和成员 -package 只输...

qingshanli
07/16
0
0
Android JNI学习(三)——Java与Native相互调用

本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法...

隔壁老李头
05/09
0
0
My java——JVM(内存)二

续 My java——JVM(java 虚拟机)一 http://my.oschina.net/mynote/blog/113572 这里继续对java做深入的理解。 从(一)中说明了JVM就等同于操作系统,我们在学习操作系统的时候就会理解内存...

tngou
2013/03/14
0
0
JVM学习总结五——性能监控及故障处理工具

之前扯了四篇理论,这一篇终于可以动动手了。本篇我们将介绍JVM常用的一些工具,这些工具将是我们监控JVM状态、处理故障和调优分析的利器。 不过在开始之前,我还是要先车扯两句:工具终归只...

oO脾气不坏Oo
2014/03/16
0
0
[Java学习探讨]为什么学Java虚拟机的Java程序员更值钱?

[Java学习探讨]为什么学Java虚拟机的Java程序员更值钱? 曾经的我经常害怕处理与JVM相关的异常,对JVM的配置参数也一无所知,那时候我天真地认为,JVM的出现本身就是想让程序员屏蔽实现细节,...

原创小博客
07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
17分钟前
1
1
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
27分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
28分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
36分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部