1. JProfiler运行环境配置

安装目录结构如下,子目录中显示了支持的操作系统:

在服务器和客户端都要安装JProfiler,并且要安装License,在分析工具客户端中进行安装。Windows环境中运行客户端程序:

jprofiler5.1.4/bin/jprofiler.exe

在UNIX系统中运行客户端程序,执行shell脚本:

jprofiler5.1.4/bin/jprofiler

需要安装License之后才能使用,请使用合法License。

2.分析独立Java应用

启动Start Center:

点击<New Session>,进入Session设置界面:

l  输入Session的名称;

l  Session Type选择Local;

l  选择本机安装的JVM;

l  设置工作目录,工作目录是分析过程中存放数据的位置;

l  如果需要的话设置JVM的启动参数;

l  设置Java应用的main类;

l  设置Java应用的启动参数;

l  然后在下面的Java File Path输入框中添加Java应用运行要用到的所有classpath和JAR包。

在Start Center中用<Start>按钮启动配置好的Java应用:

3.分析JBoss中的应用

在分析客户机打开Start Center:

点击<New Server Integration>进入应用服务器的配置界面:

选择合适版本的JBoss,点击<Next>进入下一步:

对于J2EE服务器分析,建议采用远程模式,并选择服务器的操作系统类型,点击<Next>进入下一步:

输入远程服务器的地址,然后点击<Next>进入下一步:

输入远程服务器上安装JProfiler的目录,然后点击<Next>进入下一步:

输入远程服务器上JBoss的启动批处理程序目录位置及文件名,可以先将该批处理文件拷贝到分析客户机,然后选择该批处理程序,向导程序会修改该批处理程序,添加加载JProfiler服务端程序的命令参数,然后创建新的批处理程序,原来的批处理程序保留不变。然后点击<Next>进入下一步:

位JVM,还要勾选该选项,然后点击<Next>进入下一步:

,然后点击<Next>进入下一步:

选择服务器端JProfiler的启动模式,一般选择等待JProfiler GUI连接的方式。由于JVM首先加载JProfiler的服务端代理程序,JProfiler分析服务会停止JVM继续启动,等待JProfiler GUI连接,连接成功后服务器的JVM才会继续启动,分析配置信息会从客户端传递给服务端,例如。

如果选择不等待的模式,那么服务端的配置会复杂些,要将分析客户端JProfiler产生的config.xml拷贝到服务器端,然后在服务器启动时候自动加载该配置文件,分析客户端和服务器连接的时候,不再将分析配置信息传递给服务端,客户端分析工具的配置id要和服务端的配置id一致,例如:-agentlib:jprofilerti=port=8849,nowait,id=106,config= D:/jTools/jprofiler5.1.4/config.xml

然后点击<Next>进入下一步,进入配置总览界面:

然后点击<Next>进入下一步,进入最后一步生成session,以及修改过的服务器启动脚本run_jprofiler.bat:

在run_jprofiler.bat中可以发现类似于以下的修改内容:

rem The following lines have been added by the

rem application server integration wizard of JProfiler

set PATH=D:/jTools/jprofiler5.1.4/bin/windows;%PATH%

set JAVA_OPTS=-agentlib:jprofilerti=port=8849  "-Xbootclasspath/a:D:/jTools/jprofiler5.1.4/bin/agent.jar" %JAVA_OPTS%

rem end of modifications

在Start Center中添加了一个Session配置条目:

如果是Windows环境,那么这些配置存放在登录用户的目录中,类似于:C:/Documents and Settings/UserName/.jprofiler5/config.xml

4.分析WebSphere中的应用

配置WebSphere和配置JBoss类似,关注以下步骤,修改服务器配置:

上图是选择WebSphere服务器的配置文件,一般操作是先把远程服务器上的配置文件server.xml拷贝到分析客户端的机器上,该文件的位置在E:/IBM/WebSphere61/AppServer/profiles/AppSrv01/config/cells/machine1Node01Cell/nodes/machine1Node01/servers/server1/server.xml。

修改服务启动脚本,将服务器启动脚本也拷贝到本地进行修改:

把修改后的server.xml和启动服务脚本拷贝回服务器上。

server.xml的修改主要是添加了类似于下面红色标出的内容:

<processDefinitions xmi:type="processexec:JavaProcessDef" xmi:id="JavaProcessDef_1120677326792" workingDirectory="${USER_INSTALL_ROOT}" startCommand="" stopCommand="" terminateCommand="" processType="Single">

<executableArguments />

<execution xmi:id="ProcessExecution_1120677326792" processPriority="20" runAsUser="" runAsGroup="" />

<ioRedirect xmi:id="OutputRedirect_1120677326792" stdoutFilename="${LOG_ROOT}/${SERVER}/native_stdout.log" stderrFilename="${LOG_ROOT}/${SERVER}/native_stderr.log" />

<jvmEntries xmi:id="JavaVirtualMachine_1120677326792" verboseModeClass="false" verboseModeGarbageCollection="false" verboseModeJNI="false" runHProf="false" hprofArguments="" debugMode="false"

debugArgs="-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777"

genericJvmArguments="-agentlib:jprofilerti=port=8849  -Xbootclasspath/a:G:/jprofiler/bin/agent.jar">

<classpath />

<bootClasspath />

</jvmEntries>

</processDefinitions>

startServer_jprofiler.sh中增加类似于以下的内容:

LIBPATH="/oracle/jprofiler/bin/aix-ppc64:$LIBPATH"

export LIBPATH

5. 基本分析

5.1 内存分析

查看JVM中内存对象的数量及占用空间:

5.2

5.2 代码执行时间分析

查看方法调用花费的时间及调用次数:

相关文章:

http://wenku.baidu.com/link?url=gJce88AIWvrlg7tK9QfjGXxh0wFl_yfIDldghynXR4Jjffe3A3VTr4c_AjuOz6VTqdICj9cysOSx-wSuOKHyM_kkOWn_dZx6mB0EpFspWGG

http://wenku.baidu.com/link?url=gJce88AIWvrlg7tK9QfjGXxh0wFl_yfIDldghynXR4Jjffe3A3VTr4c_AjuOz6VTpXbRAe4hE2R-C8H1hz7YJj8lkKgy8lJeRA7lE4SZsVy

http://wenku.baidu.com/link?url=GEhdJADabNyU3z6RYrZIWvtsHebvirEB9ZxopIggwV9BZA8MA2oywf0G7n3s3NRYtuu1qxh-GSD9mCnOXXp2fQyk0NJmKbHMYyRJOrVrcf3

JProfiler 5.1.4的使用方法的更多相关文章

  1. Java性能分析神器-JProfiler详解(一)(转)

    前段时间在给公司项目做性能分析,从简单的分析Log(GC log, postgrep log, hibernate statitistic),到通过AOP搜集软件运行数据,再到PET测试,感觉时间花了 ...

  2. Java性能分析神器-JProfiler详解(转)

    前段时间在给公司项目做性能分析,从简单的分析Log(GC log, postgrep log, hibernate statitistic),到通过AOP搜集软件运行数据,再到PET测试,感觉时间花了 ...

  3. java应用的优化【转】

    XX银行网银系统是一套全新的对公业务渠道类系统,经过两年的建设,将逐步对外提供服务. 该系统融合了原来多个对公渠道系统,并发量是以前多个系统之和,吞吐量要求将大幅上升.为了使广大对公客户使用系统时获得 ...

  4. JFR 与 JProfilter Jvmisualvm

    只有JFR 是可以在生产环境使用  采用C++独立写的采样手机功能 而 JProfilter/JVisualvm 都只能在测试环境下使用 使用instrument 机制 ,还有debug 框架 最早是 ...

  5. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  6. 利用Java剖析工具JProfiler查找内存泄漏的方法

    本文主要介绍如何如何利用在使用JProfiler时意识到内存泄漏以及查找内存泄漏的几种方法. 工具/原料   JProfiler 方法/步骤   JProfiler的内存视图会话提供了内存使用情况的动 ...

  7. Java开发分析工具JProfiler的详细使用方法解析

    JProfiler 11 是一款功能强大的Java代码分析工具,JProfiler的直观UI可帮助您解决性能瓶颈,确定内存泄漏并了解线程问题且JProfiler 11 Mac破解版配置会话非常简单,第 ...

  8. Java监控工具介绍,VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,Java微基准测试

    本文是本人前一段时间做一个简单Java监控工具调研总结,主要包括VisualVm ,JProfiler,Perfino,Yourkit,Perf4J,JProbe,以及对Java微基准测试的简单介绍, ...

  9. 转载:JProfiler远程监控LINUX上的Tomcat过程细讲

    来源于xuwanbest的博客   所谓"工欲善其事,必先利其器",好的工具确能起到事半工倍的作用.我用到的最多的就两个JConsole 和JProfiler .JConsole监 ...

随机推荐

  1. tomcat+java的web程序持续占cpu高问题调试【转】

    转自 tomcat+java的web程序持续占cpu问题调试 - 像风一样的自由 - CSDN博客http://blog.csdn.net/five3/article/details/28416771 ...

  2. [转载]锁无关的数据结构与Hazard指针——操纵有限的资源

    Lock-Free Data Structures with Hazard Pointers 锁无关的数据结构与Hazard指针----操纵有限的资源 By Andrei Alexandrescu a ...

  3. C++——sort和stable_sort的若干区别

    版权声明:本文系作者原创,转载请注明出处. C++中sort和stable_sort的区别: sort是快速排序实现,因此是不稳定的:stable_sort是归并排序实现,因此是稳定的: 对于相等的元 ...

  4. PHP 面向对象 final类与final方法

    final---用于类.方法前. final类---不可被继承. final方法---不可被覆盖. final类不能被继承. 如果我们不希望一个类被继承,我们使用final来修饰这个类.这个类将无法被 ...

  5. python【项目】:工资管理(简易版)

    功能要求: 登录系统用户认证通过后才能列出下一级菜单员工信息表 登录系统要有用户登录.注册账号.删除账号.修改密码.退出 登录密码要有加密功能 从info.txt文件读取员工及工资信息,最后通过增加, ...

  6. LeetCode679. 24 Game

    You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...

  7. [BZOJ4942][Noi2017]整数 线段树+压位

    用线段树来模拟加减法过程,维护连续一段中是否全为0/1. 因为数字很大,我们60位压一位来处理. #include<iostream> #include<cstring> #i ...

  8. day3 作业

    文件操作用户很广泛,我们经常对文件进行操作: global log 127.0.0.1 local2 daemon maxconn log 127.0.0.1 local2 info defaults ...

  9. 06 java 基础:java 循环 递归

    1 递归实现 1 + 2 +3 +4 +5 + .... +100 public static int addSum(int num){ if(num == 1) return 1; return n ...

  10. NoSql数据库 设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 用户信息表,书籍信息表,用户为书籍打分信 ...