你好,游客 登录 注册 搜索
背景:
阅读新闻

JDK自带工具之jinfo

[日期:2015-01-20] 来源:Linux社区  作者:ffm83 [字体: ]

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

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-01/112124.htm

linux
相关资讯       jinfo 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款