微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么运行应用程序时总是在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(),…)的方法中尽可能多地减少它们.

原文地址:https://www.jb51.cc/android/311826.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐