64 Star 1.2K Fork 359

blue / 盒子IM

 / 详情

性能是不是可以再优化下呢?

待办的
创建于  
2023-12-19 17:53

目前是200毫秒拉取一次消息,每次只处理一个消息,当消息量较大时,容易处理不过来(不知道我的理解对不对)
输入图片说明

这里是不是可以用while循环,当队列中有消息就一直处理,直到处理完毕,感觉这样性能会好很多

输入图片说明

评论 (9)

keepking 创建了任务

这里确实有性能问题。

以前这里是批量拉取,后来考虑到会存在丢消息的可能性,改成了逐条拉取,但是忘记了父类每次循环还有200ms的睡眠

这两天会优化,感谢您的反馈!

父类的200ms是怎么实现的,没看明白 :joy:

我看是异常才200ms睡眠呀

是的,看我下面的回复

其实没实现...看我下面的回复

之前的回复有误,这里更正一下:

拉取消息抛异常才会睡眠200ms,所以并不是200ms拉取一次消息,也不存在严重的性能问题。

另外附带昨天在个人开发环境压测结果:
压测设备(普通个人开发电脑):
操作系统:windows
cpu: AMD 锐龙R5 6核
内存: 金士顿16G

压测工具:jmeter
压测请求:私聊接口(对方web端在线、移动端离线)
压测时长:120s
压测线程:10
压测结果:qps:1900 请求异常:0 消息丢失:0
压测时电脑状态: cpu:100% 内存:60%

赞 不过他这个while写法 的确也有可取之处 消息多的时候就先原地处理完

app和pc 都出现消息丢失问题

数据库查询是有的,但是消息拉去没有

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(5)
47599 lancer2 1578915665
Java
1
https://gitee.com/bluexsx/box-im.git
git@gitee.com:bluexsx/box-im.git
bluexsx
box-im
盒子IM

搜索帮助