为什么运行应用程序时总是在Android Logcat中显示GC_CONCURRENT FREED和GC_CONCURRENT ALLOCATE?

前端之家收集整理的这篇文章主要介绍了为什么运行应用程序时总是在Android Logcat中显示GC_CONCURRENT FREED和GC_CONCURRENT ALLOCATE?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道,为什么每次运行任何应用程序时都会显示以下消息.

12-11 17:18:37.141:D / dalvikvm(3155):GC_CONCURRENT释放485K,9%免费6696K / 7303K,暂停9ms 335ms

暂停9ms 335ms由于这个暂停我应该播放的音频丢失,因为根据我的代码它每40ms接收音频数据,所以这里暂停9ms 335ms这是数据丢失的10倍

我知道它执行某种垃圾收集,但我的问题是为什么它经常出现在logcat中.

感谢任何帮助!!!!!!

解决方法

Java使用垃圾收集功能,以防止您通过删除不再被任何类引用且不能从代码访问的对象而脱离内存.

如果您有太多的这些对象,您将获得GC呼叫,这可能会在某些时候影响您的性能.另一方面,一直引用的对象可能会阻止GC被调用(内存泄漏),并且您的内存可能会填满,并且您会收到OutOfMemoryException.

您的目标不是消除GC,而是在延迟敏感并在UI线程上运行(如onDraw(),getView(),…)的方法中尽可能多地减少它们.

猜你在找的Android相关文章