最近公司的项目很不稳定,经常莫名其妙的down机,而且响应速度感觉也很不理想。于是怀疑产生了内存泄漏问题。在网上看了关于一些测试工具的介绍,认为JProfiler比较合适,最新版本是4.x,但是找不到破解,只找到了3.3的破解,于是下载了3.3。下载地址是:
http://www.ej-technologies.com/download/jprofiler/version3.php
网上很多关于JProfiler的介绍都是被监控的应用程序(或web应用)和Jprofiler装在同一台机器上的情况。如果一定要这样,感觉意义就不大了,因为想要监控的往往就是远程的linux服务器的web应用,而监控结果当然希望在本地windows pc上以图形界面的方式看到。在本地windows上装了jprofiler3和破解后,发现确实有remote session的选项。于是开始干活:
第一步,除了下载windows版的jprofiler3并在本地安装外,在下载一个linux版。Linux版包括rpm安装版,.sh安装版和.tar.gz压缩版,我下的是.sh版,用./jprofiler3.sh –q安装后,在linux上,jprofile被安装在了/var/jprofiler3路径下(我没改任何配置文件直接执行的安装就是这个结果,目的只是使用它所以不想花时间研究)。
第二步,本地运行图形界面的jprofiler,在菜单中选择Session->Integration Wizard->New Remote Integration,如图:
然后选择“on a remote computer”,系统选Linux X86,如图:
后面几部就不帖图了,就是傻瓜操作,问啥填啥,直到看到这一步:
这个里面的提示是根据你填的东西不同而生成的个性信息,copy下来,待会要用到,然后下一步,选“No, I will start the session later.”。
第三步,就要在linux服务器上进行配置了,这就需要刚才生成的个性配置信息。其中 –Xint –Xrunjprofiler:port=8849 –Xbootclasspath/a:/opt/jprofiler3/bin/agent.jar是附加的启动java程序时跟在”java”后面的命令行参数,由于我用的是tomcat,那就在tomcat的启动脚本startup.sh中的JAVA_OPTS参数中添加入这一行东西。(其实还会遇到很多细节问题导致的失败,这都是后话了,比如这些命令行参数和原先的参数可能冲突,我开始做了好多次都失败,JVM都出了bug报告,开始不知道怎么回事,耽误了很多时间,其实就是参数冲突)。还有一个个性配置信息就是要有一个叫LD_LIBRARY_PATH的环境变量,那我就修改了catalina.sh,在里面加入export LD_LIBRARY_PATH=/opt/jprofiler3/bin/linux-x86。
第四步,这时候就用修改过的startup.sh启动tomcat,可以在catalina.out日志中看到提示我们远程监控程序可以连接了。
第五步,我们在本地windows pc中运行的jprofiler的菜单中选择“Session -> Open Session”,选择刚才建立的remote session,然后狂点好几个OK就行了。
如果没有问题,监控程序就运行成功了!我们就可以看到好多可爱的监控结果,比如内存堆栈的分配和使用情况、对象建立的多少情况、cpu使用的情况,还可以针对每个类或每个对象或每个线程、或每个函数对内存、cpu的使用情况,还可以看java虚拟机中自动垃圾收集的运行情况,这一切都是可爱的图形界面!还可以生成静态报告,告诉你各种线程、类、对象的调用关系、运行堆栈和每个具体单元占用的资源和时间等等,功能还是非常super的,而且好多东西还没搞懂呢,反正给我的感觉就是它能告你的东西比你想知道的还要多好多, 教育我们,jprofiler是个好东东。
分享到:
相关推荐
Java性能监控工具JProfiler是Java开发中的重要辅助软件,它为开发者提供了深入的性能分析功能,帮助优化应用程序的运行效率。JProfiler 4.3.2版本是该工具的一个历史版本,虽然较新版本可能拥有更多特性,但4.3.2...
`jconsole`和`jvisualvm`都是图形化的性能监控工具,它们提供了丰富的界面,可以实时监控Java应用的CPU使用、内存分配、线程状态等。`jvisualvm`还支持生成各种报告和分析堆内存转储。 `jhat`是一个命令行工具,...
JProfiler可以通过时时的监控系统的内存使用情况,随时监视垃圾回收,线程运行状况等手段,从而很好的监视JVM运行情况及其性能。它把CPU、线程和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和...
JProfiler是一款强大的Java性能分析工具,可以帮助开发者深入理解应用程序的运行情况,定位内存泄漏、CPU消耗过高等问题。本文将详细介绍如何使用JProfiler 6.2来监控本地的Java程序。 首先,了解JProfiler的基本...
jprofiler 详细使用介绍 jprofiler 是一款功能强大的 Java 性能分析工具,能够帮助...jprofiler 是一款功能强大且使用方便的 Java 性能分析工具,能够帮助开发者快速地检测和解决 Java 应用程序中的性能瓶颈和问题。
### jProfiler监控工具使用说明 #### 一、概述 JProfiler是一款全面且强大的Java剖析工具,主要用于分析J2SE和J2EE应用程序。该工具集成了CPU线程和内存剖析的功能,提供了直观的图形用户界面(GUI),帮助开发者...
首先,JProfiler11是一款专业级别的Java性能分析工具,它能够对JVM进行深入的内存和CPU分析。通过集成到Idea中,开发者可以直接在IDE内部进行性能检测,无需离开熟悉的开发环境。只需下载JProfiler11的安装包,并...
JProfiler是一款强大的Java性能分析工具,它提供了全面的内存监控、线程分析以及CPU性能剖析等功能,帮助开发者深入理解应用程序的运行状态,找出潜在的性能瓶颈。 ### JProfiler的功能特性 1. **内存分析**:...
总结来说,jProfiler11作为一款Java性能分析工具,以其全面的性能监控、深入的内存分析、直观的线程视图和强大的远程监控能力,成为Java开发者的得力助手。无论是在开发阶段还是在生产环境中,jProfiler11都能有效地...
jProfiler7是一款强大的Java性能分析工具,尤其在内存分析方面表现出色。它专为开发者设计,帮助他们在Linux环境中深入理解并优化Java应用程序的内存使用情况。本篇文章将详细探讨jProfiler7在Java内存分析上的核心...
JProfiler是一款强大的Java性能分析和内存监控工具,它能够帮助开发者深入理解Java应用程序的运行情况,找出性能瓶颈并优化代码。本文将详细阐述JProfiler的主要功能、安装过程以及使用技巧,以帮助你充分利用这款...
【总结】JProfiler8作为一款强大的Java性能监控工具,无论是本地应用还是远程服务器,都能提供详尽的性能数据和问题诊断能力。通过正确配置,开发者可以有效地监控和改善应用程序的性能,减少内存泄漏,优化资源利用...
4. **YourKit Java Profiler**: YourKit是另一款强大的商业Java性能监控工具,特别适合进行内存泄漏检测和CPU性能分析。它拥有直观的用户界面和强大的分析报告。 5. **JMX**: Java Management Extensions (JMX) 是...
总之,jProfiler作为Java开发中的得力助手,提供了全方位的性能监控和分析,是每个Java开发者优化代码、提升软件性能的必备工具。通过深入理解和熟练使用jProfiler,开发者能够更好地理解代码运行机制,有效解决性能...
总结来说,JProfiler9是一款全面而强大的Java性能测试工具,它在内存管理、CPU剖析、线程监控、数据库性能优化等方面都有出色的表现。通过对应用程序的深度分析,它能帮助开发者识别并解决性能问题,提升整体应用...
常见的Java性能分析工具有JProfiler、VisualVM、YourKit Java Profiler等。这些工具提供了深入的性能指标,如CPU使用率、内存分配、线程状态等,帮助开发者诊断和优化代码。 例如,JProfiler提供了丰富的可视化界面...
总的来说,VisualVM作为一款免费且功能全面的Java性能分析工具,为开发者提供了强大的性能监控和问题排查手段。通过深入理解VisualVM的使用,开发者能够更好地优化代码,提升Java应用程序的性能和稳定性。
4. **YourKit Java Profiler**: YourKit是另一款广泛使用的Java性能分析工具,它特别擅长于内存分析和CPU性能剖析。YourKit提供实时的内存泄漏检测,能够帮助开发者快速找到内存占用高的对象。 5. **AppDynamics**:...
JProfiler是一款强大的Java性能分析工具,尤其在检测内存泄漏方面表现卓越。本文将深入探讨如何使用JProfiler来定位并解决内存泄漏问题。 首先,理解内存泄漏的本质至关重要。在Java中,内存泄漏通常发生在对象被...
1.JProfiler是一个ALL-IN-ONE的JAVA剖析工具 2.可以方便地监控Java程序的CPU 3.内存使用状况 4.能够检查垃圾回收 5.分析性能瓶颈! 6.可以追踪本地调试代码时各个网关,数据库,页面等执行占用时间。