首页 > 代码库 > JDK自带工具之jinfo

JDK自带工具之jinfo

Jinfo是JDK自带Java配置信息工具。位于java的bin目录下,jinfo的作用是实时地查看和调整虚拟机的各项参数,虽然使用Jps命令的-v参数可以查看虚拟机启动时显示指定的参数列表。但是如果想要知道没有被明确指出的系统默认值,就需要用到jinfo。

Jinfo还能够修改一部分运行期间能够调整的虚拟机参数。

1、Jinfo命令格式

jinfo [ option ] pid

 

2、常用参数

Usage:

    jinfo <option> <pid>

       (to connect to a running process)

 

where<option> is one of:

    -flag <name>         to print the value of the named VMflag

    -flag [+|-]<name>    to enable or disable the named VM flag

    -flag <name>=<value> to set thenamed VM flag to the given value

    -h | -help           to print this help message

3、源代码

package com.jdkTools;

 

import java.util.ArrayList;

import java.util.Random;

 

/**

 * 简单的应用,有大量的循环和创建对象,供测试JDK自带的jinfo使用

 * 参数:-Xms30m -Xmx60m

 *

 * @author 范芳铭

 */

public class EasyJinfo {

    public byte[] placeHolder = newbyte[1 * 1024]; //占位符

 

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

        while (true) {

            Random random = newRandom();

            int loops = random.nextInt(10000);

            EasyJinfo jstat = newEasyJinfo();

            System.out.println("......正在构建对象:" + loops + "(个)");

            jstat.getLoop(loops); //多次循环,产生大量对象

            Thread.sleep(100);     

        }

    }

 

    public void getLoop(int size) {

        ArrayList<EasyJinfo>list = new ArrayList<EasyJinfo>();

        for (int i = 0; i < size;i++) {

            EasyJinfo jstat = newEasyJinfo();

            list.add(jstat);

        }

    }

}

4、运行参数

* 参数:-Xms30m -Xmx60m ,本参数用于启动JVM虚拟机

5、运行结果(jinfo查看、调整JVM参数)

首先要用JPS找到对应的进程ID

C:\Program Files\Java\jdk1.6.0_25\bin>jps -v

5340 Jps -Dapplication.home=C:\ProgramFiles\Java\jdk1.6.0_25 -Xms8m

1768 EasyJinfo -Xms30m -Xmx60m -Dfile.encoding=GBK

2856  -Xms256m-Xmx768m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=64m-Dosgi.nls.warnings=ignore

然后执行jinfo

C:\Program Files\Java\jdk1.6.0_25\bin>jinfo -flagSurvivorRatio  1768

-XX:SurvivorRatio=8

注意:很多运行参数是不能调整的,如果出现这种异常,说明不能调整:

Exception in thread "main" java.io.IOException:Command failed in target VM

JDK自带工具之jinfo