java命令行HPROF Profiler(转)

The HPROF Profiler

The Heap and CPU Profiling Agent (HPROF)是JAVA2 SDK自带的一个简单的profiler代理,它通过与Java Virtual Machine Profiler Interface (JVMPI) 交互,将profiling信息通过本地文件或socket输出ASCII或二进制格式的流。

HPROF可以监控CPU使用率,堆分配统计。除此之外,还可以报告JVM所有监视器和线程的完整的堆的dump状态。

HPROF的JVM参数的语法如下:

-Xrunhprof[:help]|[:param=value,param2=value2, ...]

示例:

-Xrunhprof:file=log.txt,thread=y,depth=3

The file parameter determines where the stack dump is written.

file参数决定dump的堆栈写入到那个文件。

HPROF的详细参数如下:

 

Hprof usage: -Xrunhprof[:help]|[:<option>=<value>, ...]

Option Name and Value   Description             Default
---------------------   -----------             -------
heap=dump|sites|all     heap profiling          all
cpu=samples|old         CPU usage               off
format=a|b              ascii or binary output  a
file=<file>             write data to file      java.hprof
                               (.txt for ascii)
net=<host>:<port>       send data over a socket write to file
depth=<size>            stack trace depth       4
cutoff=<value>          output cutoff point     0.0001
lineno=y|n              line number in traces?  y
thread=y|n              thread in traces?       n
doe=y|n                 dump on exit?           y

 

一个javac的示例

Command used: javac -J-agentlib:hprof=cpu=samples Hello.java

CPU SAMPLES BEGIN (total = 126) Fri Oct 22 12:12:14 2004
rank   self  accum   count trace method
   1 53.17% 53.17%      67 300027 java.util.zip.ZipFile.getEntry
   2 17.46% 70.63%      22 300135 java.util.zip.ZipFile.getNextEntry
   3  5.56% 76.19%       7 300111 java.lang.ClassLoader.defineClass2
   4  3.97% 80.16%       5 300140 java.io.UnixFileSystem.list
   5  2.38% 82.54%       3 300149 java.lang.Shutdown.halt0
   6  1.59% 84.13%       2 300136 java.util.zip.ZipEntry.initFields
   7  1.59% 85.71%       2 300138 java.lang.String.substring
   8  1.59% 87.30%       2 300026 java.util.zip.ZipFile.open
   9  0.79% 88.10%       1 300118 com.sun.tools.javac.code.Type$ErrorType.<init>
  10  0.79% 88.89%       1 300134 java.util.zip.ZipFile.ensureOpen

 

参考 http://docs.oracle.com/cd/E19798-01/821-1752/beafo/index.html

       http://stackoverflow.com/questions/11737013/java-profile-tool-without-gui

http://www.cnblogs.com/ggjucheng/p/3352332.html

时间: 2024-11-16 10:58:40

java命令行HPROF Profiler(转)的相关文章

JAVA运行问题,拖动java命令行窗口,请求数据就出错

问题描述 43224243如上图所示,上图java运行一个线程,不断检测后台的请求,来解析并向后台返回数据.我遇到的问题是,当我拖动上图右侧的滚动条时,则后台请求接收不到,我的疑问是,是不是拖动java命令行右侧滚动条,java执行的线程就暂停了? 解决方案

直接用java命令行动态生成jpg文件

/** * jeruGraphics v 1.0 * * 看到一些动态生成图象的例子都是servlet完成的, * 而且程序很长,觉得不是无论从实用性还是可读性来说都不是太好. * 这里给了段代码,命令行生成图象文件.这样是不是简单易用些呢? * * 创建一个 BufferedImage 对象,将你的"画"放到这个缓冲里, * 再打开一个文件,将图像流编码后输入这个文件,这样就有一个 * jpg文件出现了,试试吧... * * Mender : * Jeru Liu * Homepag

Java 命令行工具

我使用Java swing做了一个命令行工具:  使用的核心技术是SwingWorker,运行效果:    核心工具类: Java代码   public class ShellSwingWorker extends SwingWorker<Boolean, Character> {       /***       * 执行命令的正常输出(对程序来说是输入)       */       private BufferedReader br_right = null;       /***   

Java命令行配置加载模块详解

最近在用Java,写了一个动态从xml中加载命令行提示,支持多语言的模块 package com.common; import org.apache.commons.cli.*; import org.dom4j.io.SAXReader; import java.io.*; import java.util.Iterator; import java.util.List; /**  * Created by LonelyRain on 16/7/12.  */ public class Par

java命令行的问题

问题描述 没有使用IDE,直接在文件系统上建了一个叫MyProject的目录,下面有一个com目录,com下有一个test目录,test目录下是.java的文件:A.java,B.java:内容如下: package com.test; class A { public void f1(){} } package com.test; class B{ public void f2(){ A a = new A(); } }编译了A之后,B编译总是通不过,报错说是 找不到符号A请问一下这是什么问题

php生成curl命令行的方法_php技巧

本文实例讲述了php生成curl命令行的方法.分享给大家供大家参考,具体如下: 示例: curl "http://localhost/other/serverInfo.php?dd=ddd" -H "Host:localhost" -H "Connection:keep-alive" -H "Cache-Control:max-age=0" -H "Accept:text/html,application/xhtml

PHP命令行执行整合pathinfo模拟定时任务实例_php实例

命令行模式下,根据传参,调用不同控制器.控制器中根据配置定时执行指定方法 Application.php <?php class Application{ public static function main(){ header("content-type:text/html;charset=utf-8"); self::register(); self::commandLine(); self::pathInfo(); } //自动加载 public static funct

Java和C#运行命令行的例子对比

呵呵,刚给客户解决了在C#里运行命令行的例子,顺便整理了一下Java的例子,大家参考对比一下 Java的 import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; /** * Java运行命令行的例子 * * @author JAVA世纪网(java2000.net) */ public class TestProcess { public static void ma

关于JVM命令行标志您不知道的5件事:调优JVM性能和Java运行时

JVM 是多数开发人员视为理所当然的 Java 功能和性能背后的重负荷机器.然而,我们很少有人能理解 JVM 是如何进行工作的 - 像任务分配和垃圾收集.转动线程.打开和关闭文件.中断和/或 JIT 编译 Java 字节码,等等. 不熟悉 JVM 将不仅会影响应用程序性能,而且当 JVM 出问题时,尝试修复也会很困难. 本期 5 件事 系列 将介绍一些命令行标志,您可以使用它们来诊断和调优您的 Java 虚拟机性能. 1. DisableExplicitGC 我已记不清有多少次用户要求我就应用程