本文来自于我的同事Roy的一次分享,感觉蛮有用的,保存下来,以备后用。1 分析工具1)     动态分析工具Jprofiler具体Jprofiler在我们的FTPC的配置,可以参考我在sharing上的一篇分享文章            &
转载 2024-01-01 06:49:55
411阅读
获取Heap Profile文件线上服务出现问题,第一步做的一定是及时止损,然后再找原因和修复。 对于Java服务,如果启动参数配置了-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/woods -Dfile.encoding=UTF-8那么在服务OOM时直接就可以在相应路径下就可以拿到heap dump的heap profile文件了。
转载 2024-01-15 08:00:56
88阅读
    J2SE中提供了一个简单的命令行工具来对java程序的cpu和heap进行 profiling,叫做HPROFHPROF实际上是JVM中的一个native的库,它会在JVM启动的时候通过命令行参数来动态加载,并成为 JVM进程的一部分。   要使用hprof,可以通过在运行java程序时指定-agentlib或者-Xrunhprof参数来
转载 2023-01-26 16:31:09
1264阅读
1.Android 导出hprof到matmat工具:链接:https://pan.baidu.com/s/1lCi1ZKomRGjpT_D7kiZepg 提取码:sdvk 也可以https://www.eclipse.org/mat/ 通过官网下载1.1.Android studio生成hprof文件点击AS Profiler 这一项 点击下载按钮这一项, 堆转储界面点击红框处按钮 此时就生成
转载 2023-12-25 12:51:08
923阅读
使用 jdk 自带的 jhat 命令如何打印堆栈信息到hprof文件中运行程序增加VM参数(如何增加VM执行参数,可以查看之前文章):-XX:+HeapDumpOnOutOfMemoryError # 会打印出现内存溢出异常时,Dump出当前内存堆转存快找以便分析步骤1:在命令行界面,执行以下命令,其中java_pid73912.hprof为文件名称jhat java_pid73912.hprof 会输出Reading from java_pid73912.hprof...Dump f
原创 2021-07-19 14:13:59
7141阅读
生成hprof文件可以在DDMS选中进程点击窗口左上角的"dump hprof file"按钮来直接生成,也可以通过在程序加代码中来生成代码2:void generateHprof() { String packageName=getApplicationInfo().packageName; String hpFilePath="/data
转载 2023-12-26 17:46:13
179阅读
线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题
转载 2024-05-16 11:15:40
136阅读
基于动态链接库实现,可用于性能分析,锁内容.诊断memory leak问题等.获得堆开辟信息 java -agentlib:hprof=heap=sites ToBeProfiledClass 帮助文档 java -agentlib:hprof=help - Get sample cpu information every 20 millisec, with a stack depth of ...
原创 2021-08-05 13:50:32
622阅读
用jprofile打开hprof文件,查看内存泄露情况,有几个常用的功能说明一下:1 下载1.1 官网点击傻瓜式下载2 安装1、打开hprof文件:进入classes视图,根据(instance count和Size)基本可以确定哪个类的对象出现问题。比如(java.util.LinkedList$Entry类有2731062个实例)。2、根据常识,应该java.util.Li...
原创 2021-07-09 10:41:31
6459阅读
一、JDK自带的jmap和jhat1. 设置变量 set path=%path%;"C:\Program Files\Java\jdk1.7.0_17\bin"2、查询进程号启动应用后:jps3、dump进程信息jmap -F -dump:file=dump1188.bin 1188   //假设java进程号为11884、启动web进行查看jhat  dump118
转载 2023-06-02 15:30:47
282阅读
亲爱的读者:我们最近添加了一些个人消息定制功能,您只需选择感兴趣的技术主题,即可获取重要资讯的邮件和网页通知。为了分析不同软件或软件的不同版本使用CPU的情况,相关设计人员通常需要进行函数的堆栈性能分析。相比于定期采样获得数据的方式,利用定时中断来收集程序运行时的PC寄存器值、函数地址以及整个堆栈轨迹更加高效。目前,OProfile、gprof和SystemTap等工具都是采用该方法,给出详细的
转载 2023-09-08 17:01:24
140阅读
大部分内容参考http://www.linuxidc.com/Linux/2012-04/58178.htm    J2SE中提供了一个简单的命令行工具来对java程序的cpu和heap进行 profiling,叫做HPROFHPROF实际上是JVM中的一个native的库,它会在JVM启动的时候通过命令行参数来动态加载,并成为 JVM进程的一部分。  &
转载 2023-10-28 19:22:29
154阅读
hprof-conv工具可以将Android SDK工具生成的HPROF文件生成一个标准的格式,这样你就可以使用工具进行查看:hprof-conv [-z]
转载 2015-08-04 08:21:00
294阅读
2评论
我们编写的MapReduce程序不一定都是高效的,我们需要确定MapReduce的瓶颈在什么地方。Hadoop框架提供对HPROF的支持,HPROF能够跟踪CPU、堆的使用以及线程的生命周期,对于确定程序的瓶颈能够提供很大的帮助。为了使用HPROF我们需要在JobConf中进行一些设置,具体操作如下:JobConfjobConf=newJobConf(conf);jobConf.setProfileEnabled(true);//开启HPROFjobConf.setProfileParams("-agentlib:hprof=depth=8,cpu=samples,heap=site Read More
转载 2013-05-30 20:17:00
241阅读
2评论
在使用Linux系统下部署Tomcat服务器时,有时候我们需要对服务器进行性能分析和调优。一种常用的工具就是使用hprof来生成Java应用程序的堆转储文件。本文将介绍如何在Linux系统下使用hprof工具生成Tomcat服务器的堆转储文件。 首先,我们需要确保已经下载并安装了Java Development Kit(JDK),因为hprof是JDK自带的一个工具。接着,在tomcat的启动脚
原创 2024-04-19 10:20:49
262阅读
JVM调优离不开一些命令工具,那就是jdk提供的一些命令工具,这些工具都非常稳定而且功能强大,能在处理应用程序性能问题、定位故障时发挥很大的作用。一、JDK的命令行工具JDK的jdk/bin提供了一系列监控命令这些命令行大多数是jdk/lib/tools.jar类库的一层薄包装,它们主要的功能代码是在tools类库中实现的JVM常用监控命令一览表名称主要作用jps显示指定系统内所有的虚拟机进程js
阅读本文之前建立对Java(JVM、GC)和其Web服务程序有所了解。    以下是Java自带的性能监控工具 jps(jps -mlvV)与Linux上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。jstat(man jstat | jstat -gc $jpid)监视VM内存工具,可以用来监视VM内存内的各种堆和非
转载 2023-12-18 21:25:47
108阅读
The Heap and CPU Profiling Agent (HPROF)是JAVA2 SDK自带的一个简单的profiler代理,它通过与Java Virtual Machine Profiler Interface (JVMPI) 交互,将profiling信息通过本地文件或socket输
转载 2022-12-14 17:47:57
198阅读
话不多说,记录最近学到的一些命令。1.日志分析,对比我司服务器都在云上,而有时我们需要对比分析日志 下面语句是统计日志中出现相同内容的行数find 日志路径 -name "日志名" | xargs cat | grep -E "要查找的内容(支持正则)" | wc -l /** 解释下相关参数 xargs: xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
一、问题现状     现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高......     这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能
  • 1
  • 2
  • 3
  • 4
  • 5