如何在Android 2.3.3中停止垃圾收集

时间:2013-03-12 08:24:54

标签: android performance garbage-collection calendarview

我有android应用程序2.3.3使用calendarView 当按下按钮=>显示对话框(包含calendarView)

我的logcat显示:

D/dalvikvm(15292): GC_CONCURRENT freed 1988K, 10% free 20024K/22087K, paused 4ms+3ms
D/dalvikvm(15292): GC_CONCURRENT freed 1995K, 10% free 20022K/22087K, paused 4ms+3ms
D/dalvikvm(15292): GC_CONCURRENT freed 1986K, 10% free 20029K/22087K, paused 4ms+3ms
D/dalvikvm(15292): GC_CONCURRENT freed 2005K, 10% free 20023K/22087K, paused 4ms+3ms
D/dalvikvm(15292): GC_CONCURRENT freed 1995K, 10% free 20016K/22087K, paused 4ms+3ms
D/dalvikvm(15292): GC_CONCURRENT freed 1997K, 10% free 20022K/22087K, paused 3ms+4ms

它减慢了我的应用... 我认为垃圾收集暂停了我的应用程序 请帮我快点显示!

谢谢!

4 个答案:

答案 0 :(得分:2)

垃圾收集器是一个守护程序线程。你既不能阻止也不能叫它。您可以向垃圾收集器发出请求,例如System.gc()。

另外,垃圾收集器有助于提高性能

如果您不希望GC收集您的对象,则只需保留参考。

如果您的对象过早收集,则表明您的应用程序设计存在错误。

答案 1 :(得分:1)

当实现需要avoid garbage collection的应用程序(如游戏等)时,因为每次垃圾收集器执行时都会引入小暂停,

All you can do is avoid to keep on creating objects and try to reuse as much as possible the objects instances you already have.

这可以通过不同方式take a look at this

完成

答案 2 :(得分:1)

使用CalendarView时,我注意到一个非常令人惊讶的事情。当我将日历高度设置为数字时,例如。 android:layout_height =“400dp”垃圾收集器没有运行,但是当我将其设置为match_parent时,每次切换方向都会运行垃圾收集器。也许这就是答案?

答案 3 :(得分:0)

我解决了我的问题。 因为我的对话框有RelativeLayout来包含calendarView。 我将RelativeLayout更改为LinearLayout =>垃圾收集无法启动

谢谢!