首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Java 程序该怎么优化?工具篇

1. hprof 工具 hprof 工具是通过织入监控代码,来对 Java 程序进行监控的一款工具。可以监控 Java 程序在运行时占用的 CPU,及统计堆内存使用等。...java -agentlib:hprof=cpu=times,interval=10,file=hprof.txt class 指令运行完,打开 hprof.txt 便很容易统计出哪些方法的运行耗时较长...java -agentlib:hprof=heap=sites,file=hprof.txt class 备注:若未指定 file=hprof.txt,则默认会生成 java.hprof.txt 文件...例如:将 Java 应用程序的堆快照保存在文件 core.hprof 中,然后就可以使用 VisualVM 等工具来分析这个堆文件啦。...java -agentlib:hprof=heap=dump,format=b,file=core.hprof class 采用 VisualVM 工具打开 core.hprof 文件进行分析堆快照,效果如下

98610

Android 内存分析工具

Dalvik用的也是类似的格式,但是不完全一样,这里是JavaHPROF工具 。...不过,首先需要把.hprof文件从Dalvik格式转换成J2SE HPROF格式,你可以使用Android SDK提供的hprof-conv工具。...想象一下我们想修改程序让它从网络下载图片,为了让它更具备灵活性,我们可以考虑实现一个缓存,保存最近查看过的图片,我们可以对ContentFragment.java做一些小的修改来达到这个目的。...如果你想学习更多内容,我建议读 一些下面的文章: Eclipse MAT project的官方博客:Memory Analyzer Blog 或 Blog.sixxs.org Markus Kohler 的 有关Java...性能的博客:Java Performance blog 或 blog.sixxs.org 说明: 上面两个博客网址,可能被“墙”了,需要通过V** 或 IPv6 + sixxs.org代理访问

2.7K20

Probe:Android线上OOM问题定位组件

而这些信息都可以在Java内存快照文件中得到,调用Debug.dumpHprofData(String fileName)函数就可以得到当前进程的Java内存快照文件(即HPROF文件)。...Github上有一个开源项目HAHA库,用于自动解析和分析Java内存快照文件(即HPROF文件)。下面是HAHA库的分析步骤: ?...art/runtime/hprof/hprof.cc,HPROF的生成操作基本都是在这里执行的,结合HAHA库代码阅读hrpof.cc的源码。...原始HPROF文件和裁剪后再恢复的HPROF文件分别在Android Studio中打开,发现裁剪再恢复的HPROF文件打开后,只是看不到对象中的基础数据类型值,而整个的结构、对象的分布以及引用链路等与原始...HPROF文件是完全一致的。

1.2K20

性能分析系列-小命令保证大性能

我在这个java程序中,加了如下运行参数: -agentlib:hprof=cpu=times,interval=10 /* times:java函数的执行时间 hprof=cpu是针对...Paste_Image.png 这时候还发现在工程目录里面,多了一个文本文件java.hprof.txt,如下图所示: ?...2、命令的具体讲解 hprof不是独立的监控工具,它只是一个java agent工具,它可以用在监控Java应用程序在运行时的CPU信息和堆内容,使用java -agentlib:hprof=help...命令可以查看hprof的使用文档。...如:-agentlib:hprof=heap,format=b,file=/test.hprof 这个hprof小工具,非常方便我们在用JUnit自测代码的时候结合使用,既可以解决业务上的BUG,又能够在一定程序上解决可发现的性能问题

57550

【Android 内存优化】使用 Memory Analyzer ( MAT ) 工具分析内存 ( hprof 文件转换 | MAT 工具下载 | MAT 工具使用 )

持有短生命周期对象的引用 , 并且是强引用持有 , GC 无法释放该短生命周期对象引用 , 造成 OOM ; Android Profiler 工具参考官方文档 : 使用 Memory Profiler 查看 Java...要使用 MAT 工具分析该内存快照 , 需要先将该文件转换成为 MAT 标准的文件格式 ; 使用 SDK 中的 hprof-conv.exe 工具 , 可以将上述 hprof 文件转为 MAT 工具可以识别的文件...; hprof-conv -z srcFile dstFile 3....执行如下命令 : 将 memory-20200625T145636.hprof 内存快照文件转换为 MAT 格式的内存文件 , 最终存储在 mat.hprof 文件中 , 其中加入 -z 选项 , 表示排除非...APP 内存信息 ; hprof-conv -z memory-20200625T145636.hprof mat.hprof 二、 下载 Memory Analyzer ( MAT ) 工具 --

6.5K10

Probe:Android线上OOM问题定位组件

而这些信息都可以在Java内存快照文件中得到,调用Debug.dumpHprofData(String fileName)函数就可以得到当前进程的Java内存快照文件(即HPROF文件)。...Github上有一个开源项目HAHA库,用于自动解析和分析Java内存快照文件(即HPROF文件)。下面是HAHA库的分析步骤: ?...art/runtime/hprof/hprof.cc,HPROF的生成操作基本都是在这里执行的,结合HAHA库代码阅读hrpof.cc的源码。...原始HPROF文件和裁剪后再恢复的HPROF文件分别在Android Studio中打开,发现裁剪再恢复的HPROF文件打开后,只是看不到对象中的基础数据类型值,而整个的结构、对象的分布以及引用链路等与原始...HPROF文件是完全一致的。

1.2K20

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 .......下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep。...第一步先找出Java进程ID,我部署在服务器上的Java应用名称为mrf-center: ?...E、hprof(Heap/CPU Profiling Tool) hprof能够展现CPU使用率,统计堆内存使用情况。 语法格式如下: ? 完整的命令选项如下: ?...上面每隔20毫秒采样CPU消耗信息,堆栈深度为3,生成的profile文件名称是java.hprof.txt,在当前目录。

91330

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 .......下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有ps、top、printf、jstack、grep。...第一步先找出Java进程ID,我部署在服务器上的Java应用名称为mrf-center: ?...E、hprof(Heap/CPU Profiling Tool) hprof能够展现CPU使用率,统计堆内存使用情况。 语法格式如下: ? 完整的命令选项如下: ?...上面每隔20毫秒采样CPU消耗信息,堆栈深度为3,生成的profile文件名称是java.hprof.txt,在当前目录。

1.4K20
领券