[Android]生成heap dump文件(.hprof)
Android生成heap dump文件(.hprof)
一个heap dump就是一个程序heap的快照,能够获知程序的哪些部分正在使用大部分的内存。
它保存为一种叫做HPROF的二进制格式。对于Android运行android.os.Debug.dumpHprofData(hprofPath)方法后所生成的文件,须要把.hprof文件从Dalvik格式转换成J2SE HPROF格式。使用AndroidSDK提供的hprof-conv工具可运行该转换操作。
hprof-conv dump.hprof converted-dump.hprof
本文属sodino原创,发表于博客:http://blog.csdn.net/sodino,转载请注明出处。
相关代码能够从QQ群Code2Share(363267446)中的群文件里下载。
Android代码生成dump文件例如以下:
public static boolean createDumpFile(Contextcontext) {
StringLOG_PATH = "/dump.gc/";
boolean bool = false;
SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd_HH.mm.ssss");
StringcreateTime = sdf.format(new Date(System.currentTimeMillis()));
Stringstate = android.os.Environment.getExternalStorageState();
// 推断SdCard是否存在而且是可用的
if(android.os.Environment.MEDIA_MOUNTED.equals(state)){
Filefile = new File(Environment.getExternalStorageDirectory().getPath() +LOG_PATH);
if(!file.exists()) {
file.mkdirs();
}
StringhprofPath = file.getAbsolutePath();
if(!hprofPath.endsWith("/")) {
hprofPath+= "/";
}
hprofPath+= createTime + ".hprof";
try {
android.os.Debug.dumpHprofData(hprofPath);
bool= true;
Log.d("ANDROID_LAB", "create dumpfile done!");
}catch (IOException e) {
e.printStackTrace();
}
} else {
bool= false;
Log.d("ANDROID_LAB", "nosdcard!");
}
return bool;
}
不要忘记了在AndroidManifest.xml中声明SDCard写权限:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
[Android]生成heap dump文件(.hprof)的更多相关文章
- (转)使用MAT比较多个heap dump文件
使用MAT比较多个heap dump文件 调试内存泄露时,有时候适时比较2个或多个heap dump文件是很有用的.这时需要生成多个单独的HPROF文件. 下面是一些关于如何在MAT里比较多个heap ...
- [MAT]使用MAT比較多个heap dump文件
使用MAT比較多个heap dump文件 调试内存泄露时,有时候适时比較2个或多个heap dump文件是非常实用的.这时须要生成多个单独的HPROF文件. 以下是一些关于怎样在MAT里比較多个hea ...
- linux下生成core dump文件方法及设置
linux下生成core dump文件方法及设置 from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...
- vs 自动生成core dump文件
一直以来觉着core dump这个东西很神奇,在初步学习的时候也没有个大方向,最近项目需要记录程序崩溃时的日志信息,因此在网上寻找相关的信息,此时core dump也成为了我重点关注的东西. 说说我的 ...
- dotnet core调试docker下生成的dump文件
最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发 ...
- 解决linux下不生成core dump文件
core dump的概念: A core dump is the recorded state of the working memory of a computer program at a spe ...
- Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)
记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += - ...
- linux下生成core dump文件方法
core 文件的简单介绍 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”).我们可以认为 co ...
- 生成heap dump
在查看内存泄露以及对内存问题中,要dump出当前内存堆存储快照,便于分析.有几种方法可以做,简介如下 一.intellij IDEA 由于我用的是intellij IDEA,所以没有介绍Eclipse ...
随机推荐
- Error: Top-level design entity "dff" is undefined
原因是:在quartus库文件里面已将dff定义了,要是找使用这个名字重命名了,因而需要重新命名为其他的名字.
- Telnet窗口尺寸选项
转:http://www.cnpaf.net/Class/Telnet/200408/6.html 1.命令名称和选项代码 名称=NAWS(NegotiateAboutWindowSize)协商窗口的 ...
- Shiro 设置session超时时间
通过api:Shiro的Session接口有一个setTimeout()方法 //登录后,可以用如下方式取得session SecurityUtils.getSubject().getSession( ...
- WebLogic Server 多租户资源迁移
重新建立一个动态集群,并启动,注意监听地址不能和其他集群重合 选择相应的资源组进行迁移, 迁移后,访问新的地址成功. 通过OTD负载均衡器访问原有的地址成功. 直接访问原来后台地址失败,表示资源确实已 ...
- [转载]Delphi Tokyo 10.2.3发布了
转载:http://blog.sina.com.cn/s/blog_44fa172f0102wwwg.html 今早最好的消息,Delphi 10.2.3如期发布,下载地址:http://altd.e ...
- Linux使用GPT划分大于2T的分区
在Linux下磁盘分区大于2TB的时候我不能使用常用fdisk命令,这时我们就需要先把大容量的磁盘进行转换为GPT格式,然后试用parted命令来划分大于2T的分区. 方法:1.用parted命令分区 ...
- 二分求幂 - A^B(王道*)
题目描述: 求A^B的最后三位数表示的整数,说明:A^B的含义是“A的B次方” 输入: 输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果 ...
- 基础普及-Jar、War、Ear
名词解释 Jar文件(扩展名为. Jar) 包括Java类的普通库.资源(resources).辅助文件 (auxiliary files)等 War文件(扩展名为.War) 包括所有Web应用程序. ...
- HDFS主要节点解说(一)节点功能
1 HDFS体系结构简单介绍及优缺点 1.1体系结构简单介绍 HDFS是一个主/从(Mater/Slave)体系结构.从终于用户的角度来看,它就像传统的文件系统一样,能够通过文件夹路径对文件运行CR ...
- Unity3D研究院之脚本生成Android Google Project
一般安卓自动化打包直接会生成个APK出来,但是我不想生成APK,我想生成Eclipse项目. 然后在自动化完成后面的打包工作. 1 2 3 4 5 6 7 8 9 10 11 using Un ...