java - 如何在 Android 上启用详细 GC?

标签 java android debugging garbage-collection

我正在调试一个由于神秘原因而发生大量 GC 的问题(即许多 GC_CONCURRENT、WAIT_FOR_CONCURRENT_GC 和 GC_FOR_ALLOC 消息出现在 logcat 中)。日志中的一小部分样本:

08-13 08:59:12.051  25878-25932/com.myco.myapp D/dalvikvm﹕ GC_FOR_ALLOC freed 393K, 6% free 9740K/10344K, paused 11ms, total 12ms
08-13 08:59:12.067  25878-25882/com.myco.myapp D/dalvikvm﹕ GC_CONCURRENT freed 375K, 6% free 9750K/10344K, paused 3ms+2ms, total 16ms
08-13 08:59:12.067  25878-25932/com.myco.myapp D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 9ms
08-13 08:59:12.082  25878-25932/com.myco.myapp D/dalvikvm﹕ GC_FOR_ALLOC freed 380K, 6% free 9744K/10344K, paused 12ms, total 12ms
08-13 08:59:12.106  25878-25932/com.myco.myapp D/dalvikvm﹕ GC_FOR_ALLOC freed 375K, 6% free 9740K/10344K, paused 19ms, total 19ms
08-13 08:59:12.137  25878-25882/com.myco.myapp D/dalvikvm﹕ GC_CONCURRENT freed 379K, 6% free 9745K/10344K, paused 4ms+3ms, total 23ms
08-13 08:59:12.145  25878-25932/com.myco.myapp D/dalvikvm﹕ WAIT_FOR_CONCURRENT_GC blocked 20ms
08-13 08:59:12.168  25878-25932/com.myco.myapp D/dalvikvm﹕ GC_FOR_ALLOC freed 369K, 6% free 9743K/10344K, paused 17ms, total 18ms
08-13 08:59:12.192  25878-25932/com.myco.myapp D/dalvikvm﹕ GC_FOR_ALLOC freed 380K, 6% free 9740K/10344K, paused 17ms, total 17ms
08-13 08:59:12.207  25878-25932/com.myco.myapp D/dalvikvm﹕ GC_FOR_ALLOC freed 375K, 6% free 9743K/10344K, paused 11ms, total 11ms

我想知道在如此大的卷中创建了哪些对象,以致 GC 必须如此频繁地运行。我想看看 GC 期间哪些对象被销毁。

在桌面系统上,我相信在 JVM 中启用 -verbose:gc 就可以解决问题。是否可以在 Android 上启用详细 GC?我怎样才能看到GC正在破坏什么?

最佳答案

您可能希望在 Android 监视器中跟踪分配情况以了解发生了什么情况。请参阅https://developer.android.com/tools/debugging/debugging-memory.html有关调试应用分配的详细信息。

enter image description here

另请观看过去 Google I/O 上有关 Android 内存管理的视频:https://www.youtube.com/watch?v=_CruQY55HOk

关于java - 如何在 Android 上启用详细 GC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25288493/

相关文章:

javascript - 如何使用 javascript sdk 调试 facebook connect 应用程序和 xfbml 解析?

java - 为什么 g2d.rotate 到 90 度不完全是 90 度? JAVA

java - 无法关闭 Android Activity

java - 使用 apacheDS 进行单元测试

java - 在 Android 中将内部 Uri 转换为文件?

android - 如何为 Android 开发者切换动画?

android - filterscript 文档在哪里(以及如何使用它)?

javascript firebug 错误帮助

ruby-on-rails - 如何在 Rails 上将响应正文打印到 stdout/stderr

java - 允许Java应用程序在录制音频时继续运行