设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 7398|回复: 5
打印 上一主题 下一主题

Android手机端运行时,不该频繁GC

[复制链接]

2

主题

9

帖子

50

积分

注册会员

Rank: 2

积分
50
跳转到指定楼层
楼主
发表于 2013-12-20 12:05:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们公司在用你们的Anychat平台尝试开发软件。

在eclipse里运行你们手机端程序时看到差不多每秒执行两次GC。每次执行大约消耗几十个毫秒。也就是说接近10%的cpu用来回收内存了。

我使用java有15年了,对gc研究过一段时间。我个人的理解是java的gc一般不需要显式地调用,jre内部有比较完善的触发执行的机制。对内存比较紧张的手机,如果需要显式调用,最好安排在程序空闲时,另外完全没必要频繁调用和执行。累积到一定时候,强制执行一次立即生效的内存回收指令就够了。总体执行效率上会高很多。我们过去开发的java软件,也是这么做的。

比如,反复执行了100次gc,每次消耗50毫秒,总体上是耗费了5000毫秒,如果累积到一起执行gc,应该几百毫秒就能执行完。

如果有可能,希望有机会能与你们开发人员交流一下。

我qq:993237021
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
沙发
发表于 2013-12-20 12:13:24 | 只看该作者
您好,您可以这样设置一下,应该能明显的改善这个问题:使用标准示例程序,在登录成功进入大厅之后,点击“设置”按钮,将里面的4个驱动设置项由“Java驱动模式”修改为“内核驱动模式”,然后重启应用。
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
板凳
发表于 2013-12-20 22:15:23 | 只看该作者
您好,请替换一下附件中的.so库和.java文件,看默认的“Java驱动模式”下,是否还存在GC内存回收的问题。

newlibs.rar

758.73 KB, 下载次数: 6

回复 支持 反对

使用道具 举报

2

主题

9

帖子

50

积分

注册会员

Rank: 2

积分
50
地板
 楼主| 发表于 2013-12-24 11:38:08 | 只看该作者
改善了一些,现在大约15-30秒执行一次GC,每次耗时大约30~80ms。
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
5#
发表于 2013-12-25 16:25:56 | 只看该作者
这个版本有进一步的优化,您可以测试看看:http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9108
6#
发表于 2014-1-2 10:44:27 | 只看该作者
您好,最新发布的版本已对该问题进行了优化,请更新SDK:http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-11-25 00:29 , Processed in 0.131329 second(s), 24 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表