安卓==>内存分析==> Eclipse 内存分析器?

发布于 2024-09-26 04:47:27 字数 135 浏览 5 评论 0原文

我需要检查我的应用程序是否存在内存泄漏,我还需要查看应用程序的内存分配。 我下载并安装了eclipse内存分析器,看起来第一步是打开堆转储。 但是什么是堆转储,如何创建堆转储。 我到底要如何使用这个软件,我做了一些谷歌搜索,但我找不到任何有用的信息 谢谢

I need to check my application for memory leaks, i also need to see the memory allocation of my application.
I downloaded and installed eclipse memory analyzer, and it looks like the first step is to open a heap dump.
But what is a heap dump, how can i create a heap dump.
And how exactly am i going to use this software, I did some googling but i couldn't find any useful information
thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陪我终i 2024-10-03 04:47:27

调试应用程序时,请在 Eclipse 中打开 DDMS。工具栏上有一个堆转储按钮,可用于生成堆转储以在 Eclipse 内存分析器中查看。我认为只有 1.6+ 或 2.0+ SDK 支持此功能。

When you debug your app, open DDMS in Eclipse. On the toolbar there is a heap dump button that you can use to generate a heap dump to view in Eclipse memory analyzer. This is only supported I think with the 1.6+ or 2.0+ SDK.

雨后彩虹 2024-10-03 04:47:27

dalvik VM 的堆转储需要使用 Android SDK 工具目录中的 hprof-conv.exe 转换器工具转换为常规 hprof 格式。
您可以使用 Eclipse MAT 或其他工具打开此 hprof:
YourKit http://www.yourkit.com/
和 JProbe http://www.quest.com/jprobe/

除了 DDMS 之外,您还可以创建 hprof通过 Debug.dumpHprofData(...) 从您的应用程序/代码(仅限较新的 SDK)

请注意,在 DDMS 中您可以看到您的应用程序正在使用的堆。它不显示外部资源(例如位图)正在分配的本机堆。尽管如此,在检查内存泄漏时也需要考虑这些资源。当本机堆和应用程序堆总计分别达到 16MB 时。 24MB 你会得到 OOM 错误。

您可以通过 Debug.getNativHeapAllocationSize() 来查看已使用的本机堆(即应用中的位图)。

The heap dump of the dalvik VM needs to be converted to regular hprof format using the hprof-conv.exe converter tool in the tools directory of the Android SDK.
You can open this hprof with Eclipse MAT or other tools are:
YourKit http://www.yourkit.com/
and JProbe http://www.quest.com/jprobe/

Beside DDMS you can also create the hprof from you app/code (only newer SDKs) via Debug.dumpHprofData(...)

Note that in DDMS you can see the heap that your app is using. It doesn't show the native heap that external resources such as bitmaps are allocating. Nevertheless, these resources also need to be taken into account when checking for memory leaks. When both native and app heap adds up to 16MB / resp. 24MB you will get an OOM error.

You can see the native heap that's been used (i.e. by bitmaps in your app) via Debug.getNativHeapAllocatedSize().

等待圉鍢 2024-10-03 04:47:27

另请参阅 http://developer.android.com/guide/developing/debugging /ddms.html#profiling

如果有帮助,您可以使用调试 API 启用对本地代码区域的分析。这样,您在分析跟踪(例如traceview)中的跟踪时就可以减少冗长的内容。请参阅http://macgyverdev.blogspot.com/2011/07/例如,profiling-android-application-tutorial.html

还有一些有关如何转换 DDMS 堆转储的更详细信息,以便您可以在 Eclipse Memory Analyzer 中查看它们并通过支配树工具查找泄漏对象:http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html

Also see http://developer.android.com/guide/developing/debugging/ddms.html#profiling

If it helps, you can enable profiling over local areas of code by using the Debug API. In that way you have less verbosity when analysing the traces in for example traceview. See http://macgyverdev.blogspot.com/2011/07/profiling-android-application-tutorial.html for examples.

And some more detailed info on how to convert DDMS heap dumps so you can view them in Eclipse Memory Analyzer and find your leaking objects via the dominator tree tooling: http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文