首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dalvik的垃圾收集工具

dalvik的垃圾收集工具
EN

Stack Overflow用户
提问于 2011-06-22 07:11:21
回答 1查看 561关注 0票数 6

我正在检测dalvik VM,我想知道是否有任何工具可以分析Dalvik中的垃圾收集。我知道分配跟踪器,但我正在寻找更详细的东西。

EN

回答 1

Stack Overflow用户

发布于 2013-08-08 22:48:35

获取一段时间内所有GC操作的日志:

每次发生GC时,您的LogCat中都会有一行代码。

代码语言:javascript
复制
08-08 16:42:21.998: D/dalvikvm(26942): GC_CONCURRENT freed 773K, 26% free 4739K/6368K, paused 4ms+3ms, total 92ms
08-08 16:42:21.998: D/dalvikvm(26942): WAIT_FOR_CONCURRENT_GC blocked 11ms

似乎我的设备上的所有应用程序都得到了这些。

这一行包含许多关于GC的有趣统计数据,比如释放的内存量、GC花费的时间、确切的发生时间以及堆的大小(已用/总)。

分析GC的特定运行的

如果您想分析在一个特定的GC操作中发生了什么,那么最好的工具就是Eclipse MAT。Eclipse MAT可以解析堆转储。拍摄堆快照,等待GC (或使用DDMS自己触发),然后拍摄另一个快照。

Eclipse MAT可以显示两个快照之间的增量。请注意,您将看到新的分配和GC引起的释放。有关比较快照的更多信息,请访问available here

一些其他想法:

我不确定您能从分析GC过程中学到多少东西。GC的内部工作原理是一个实现细节。它可以在不同的操作系统版本/设备/配置之间更改,而无需另行通知。

我正在努力想办法改善你正在经历的GC延迟。在我看来,GC通常在内存条件较低时运行。这可能发生在新的分配期间,因此GC可能会在您的服务处于活动状态时运行。为了尝试这样做,我会添加一个简单的后台计时器,并在我的服务变为活动状态(新请求)时重置它。当计时器滴答作响(一段时间不活动)时,我会手动运行System.gc()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6433074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档