歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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

--------------------------------------分割線 --------------------------------------

Ubuntu安裝JDK及環境變量配置 http://www.linuxidc.com/Linux/2013-01/78221.htm

Ubuntu下安裝JDK7(附Clojure下載) http://www.linuxidc.com/Linux/2012-10/71557.htm

Ubuntu 12.04下安裝JDK1.7 http://www.linuxidc.com/Linux/2012-06/62239.htm

CentOS6.3安裝JDK和環境配置 http://www.linuxidc.com/Linux/2012-09/70780.htm

Ubuntu14.04 64位 安裝JDK1.7  http://www.linuxidc.com/Linux/2015-01/111102.htm

Copyright © Linux教程網 All Rights Reserved