jjzjj

安卓 : How to test memory leak in an application?

我开发了一个应用程序,我想检查应用程序中发生的内存泄漏。我正在尝试使用eclipseMAT,但没有成功,我正在获取HROF文件,但eclipseMAT无法读取它。谁能帮帮我。任何其他查找方法。 最佳答案 需要转换来自Android的dump.hprof文件。然后就可以在MAT中打开converted-dump.hprof了。hprof-convdump.hprofconverted-dump.hprof 关于安卓:Howtotestmemoryleakinanapplication?,我

android - 内存分析器 (MAT) 插件未在 MAT Eclipse 4.1.2 中自动打开堆教授

EclipseSDKVersion:4.1.2Buildid:M20120223-0900MemoryAnalyzer1.1.1.201108240735EclipseMemoryAnalyzer您好,我已经将我的eclipse更新到最新版本,还安装了EclipseMAT插件,但是当我单击“转储HPROF文件”时,它不会在MAT中打开,而是让我选择保存HPROF文件。以前它会在eclipseMAT中自动打开它。请告诉我如何解决这个问题?我也切换到“内存分析”视角并尝试打开HPROF文件,但它抛出以下错误Erroropeningheapdump'com.game.hprof'.Check

android - com.android.internal.policy.impl.PhoneLayoutInflater 有时会保留在内存中(hprof 转储)

我正在检查内存,试图通过hprof转储查找最终的内存泄漏。我发现有时当我通过后退按钮离开Activity时(这将结束Activity),Activity仍会保留在内存中但它只有两个GC根,这似乎不是很“强”虽然。这是我的Activity流程/我点击和测试的方式:A、B、C是Activity。1)A->B->(回到)A2)执行hprof转储,结果如下:B仍在内存中,BActivity的GC根中唯一的元素是:com.myapp.android.activity.directory.Bcom.android.internal.policy.impl.PhoneLayoutInflater的m

android - 为什么我要用 HPROF 查看器和分析器查找 "Duplicate Strings"?

使用Android内存监视器,尤其是它的“转储Java堆”功能,我目前正在寻找我的应用程序中的内存泄漏。在AndroidStudio的转储/HPROFView的左侧,有一个选项可以打开“分析器任务”,您可以在那里告诉机器“检测泄漏的Activity”和“查找重复的字符串”。我对后一种选择感到困惑。它有什么作用,有什么用?它一定比仅仅帮助我们中间那些将相同字符串两次放入其资源文件夹中的笨拙开发人员更复杂。docs在这里不是很有帮助(如果我的搜索足够彻底),因为他们只声明它在“目标程序具有重复值的字符串”的情况下有帮助。什么时候会这样? 最佳答案

android - 以编程方式解析内存快照 hprof 索引文件

我正在尝试以编程方式分析hprof文件。使用android-sdk中的hprof-conv工具,我生成了一堆com.your.package.index文件。如何以编程方式解析这些.index文件?我想在支配树上运行一些自定义分析,这很容易通过MAT(Eclipse的内存分析器)手动完成,但我想以自动方式进行。 最佳答案 您可以尝试从命令行使用MAT并生成自定义报告(支配树)。在此,您可以使用可用于生成报告的XML进行过滤,也可以通过外部代码解析报告。引用:http://www.eclipse.org/forums/index.ph

android - Android studio 3 中找不到 HPROF Analyzer 工具

HPROFAnalyzer/Analyzertasks是androidstudio2中的一个很棒的工具,可以帮助检测内存泄漏。它比使用eclipseMAT工具耗时更少。但是,我无法使用AS3中新的AndroidProfiler找到它。非常感谢任何帮助! 最佳答案 您需要保存转储文件并通过“捕获”选项卡打开它。然后分析器可用 关于android-Androidstudio3中找不到HPROFAnalyzer工具,我们在StackOverflow上找到一个类似的问题:

java - 有什么方法可以分析截断的 Java 堆转储(hprof 文件)?

在我的工作中,我们遇到了一个难以重现的OOM问题。或者,更准确地说,很容易在一个系统上重现,使该系统无法使用,但在其他任何地方都很难重现,只要输入相同。应用程序正在使用服务包装器作为服务运行。我们确实设法通过在OOM上输出堆转储文件的选项来更改配置以启动它,但不幸的是,它们被截断了,很可能是由于服务包装器超时并在写入文件时终止了进程。这很明显,因为最大内存设置为1GB,而hprof文件小到700MB,这对于OOM时的整个堆来说太小了。额外配置包装器以给java进程更长的时间来写出堆,这将需要很多步骤,但我们正在使用这两个选项来实现这一点:wrapper.jvm_exit.timeout

java - 以编程方式从命令行分析 HPROF 内存转储文件

我正在调查使用Eclipse的内存分析器(MAT)分析HPROF文件。支配树、报告和OQL界面看起来非常有用。但所有这些都必须通过MAT软件手动完成。是否有命令行界面,以便我可以通过编程方式解析HPROF并自动生成自定义报告。这将有助于将此集成到测试基础架构中以进行自动内存分析。顺便说一句,堆大小将在10-60MB之间。 最佳答案 ParseHeapDump.sh做你正在寻找的东西。至于后续问题,我不确定索引文件的存储格式。 关于java-以编程方式从命令行分析HPROF内存转储文件,我

Android adb shell 查看App内存(java堆内存/vss虚拟内存/详细的内存状况/内存快照hprof)和系统可用内存

1.adbshell获取app进程的pidadbshell"ps|grepcom.xxx包名"根据某个渠道包,去查询对应的pid,如下所示:2.通过adbshell查看设备的javadalvik堆内存的最大值执行命令行:adbshellgetpropdalvik.vm.heapgrowthlimit若是app进程中javaheap(dalvikheapsize)堆内存超过384m就会抛出oom.若是appmainfest.xml中设置了largeHeap=“true”,则app进程dalvikheaplimit对应512m限制。3.查看app进程的物理rss、虚拟内存vss情况:adbshel

Java 内存溢出(二)使用 MAT 分析 .hprof 内存映像文件

目录一、内存溢出时自动导出.hprof文件二、下载安装MAT三、启动MAT四、MAT分析hprof文件1.Overview概览2.LeakSuspects溢出原因猜测3.Histogram对象实例数量排序4.DominatorTree支配树.hprof文件:是java项目的HeapDump文件,也叫内存映像文件、内存快照文件,可以存放一个java进程在某个时间点的内存快照。生成HeapDump文件的方式有两种:一是使用jmap命令手动导出,二是启动脚本中添加-XX:+HeapDumpOnOutOfMemoryError参数自动导出。本文中只涉及第二种。一、内存溢出时自动导出.hprof文件1.