登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
记一次前端使用Websocket实现AI会话时卡顿的bug修复记录 ...
记一次前端使用Websocket实现AI会话时卡顿的bug修复记录
[ 复制链接 ]
诀锺
2025-6-6 15:51:45
引言
嘿,大家好!今天我想聊聊我最近在前端开发中遇到的一个头疼的问题,以及我是如何一步步解决它的。如果你也在使用Websocket实现AI会话,或许你会遇到类似的问题。
项目背景
我最近在捣鼓一个开源项目,项目地址:GitHub - chatpire/chatgpt-web-share: ChatGPT Plus 共享方案。ChatGPT Plus / OpenAI API sharing solution. 感谢大佬的开源。原本它支持多种AI聊天接口,但我把它简化了,只保留了OpenAI API,专注于特定功能的开发。
遇到的挑战
在开发过程中,我发现随着聊天轮次的增加,应用的响应速度越来越慢,内存占用也异常高。这让我有点头疼,毕竟用户体验是最重要的。
初次尝试:内存分析
我尝试用开发者工具去分析内存,但说实话,我那半吊子的前端水平让我有点摸不着头脑。我在网上搜罗了各种教程,但似乎都不太对症。
思路转变:性能优化
我意识到问题可能出在渲染大量echarts图表上,于是尝试引入了虚拟列表技术。想法是好的,但实际操作起来却问题多多,比如消息丢失、滚动条乱跳等等。
再次调整:简化数据处理
在放弃了虚拟列表后,我决定换个角度思考。我发现在AI回复时,CPU占用率特别高。这让我意识到,可能需要重新设计后端和前端的数据交互方式。
技术实现
我调整了后端逻辑,让它只发送最新的消息增量,而不是每次都发送全量消息。这样不仅减少了网络传输的负担,也减轻了前端的内存压力。前端代码也做了相应的优化,避免了重复的消息处理。
const index = currentRecvMessages.value.findIndex((msg) => msg.id === message.id);
if (index === -1) {
currentRecvMessages.value.push(message);
} else {<br> // 原来的
// currentRecvMessages.value[index] = message;<br> // 新的
currentRecvMessages.value[index].content!.text += message.content!.text;
}
复制代码
效果
经过这些调整,应用的响应速度和内存占用都有了显著的改善,用户体验也大幅提升。现在,CPU占用通常在10-35%之间,但接收echarts图表时,会飙升至150-300%。这显然是下一步需要优化的点。
未来计划
我猜测,CPU占用率飙升的原因可能是需要同时渲染30张图表。我计划进一步优化图表的渲染方式,比如分批渲染或使用更高效的图表库。如果你有任何建议或想法,欢迎在评论区告诉我!
结语
这次的经历让我深刻认识到,优化是一个不断试错和调整的过程。我相信,通过持续学习和实践,我能成为一名更出色的全栈工程师。如果你有任何建议或想法,欢迎在评论区告诉我!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
一次
前端
使用
Websocket
实现
相关帖子
PHP实现国际短信验证码发送接口的完整指南
如何在 Unity3D 中实现无缝滚动动画?
$\LaTeX{}$之图片使用
$\LaTeX{}$之表格使用
记录 使用PsExec启动System权限的WPF 程序
如何用 vxe-table 实现2个树表格可以互相拖拽数据
文生图模型Stable Diffusion使用详解
iOS集成FaceAISDK实现人脸识别,活体检测
使用CalcBinding实现复杂逻辑绑定
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
PHP实现国际短信验证码发送接口的完整指南
0
929
任静柔
2025-09-09
安全
如何在 Unity3D 中实现无缝滚动动画?
0
804
劝匠注
2025-09-10
科技
$\LaTeX{}$之图片使用
0
78
即息极
2025-09-10
科技
$\LaTeX{}$之表格使用
0
642
袁可佳
2025-09-10
安全
记录 使用PsExec启动System权限的WPF 程序
0
842
姬宜欣
2025-09-10
代码
如何用 vxe-table 实现2个树表格可以互相拖拽数据
0
673
胰芰
2025-09-11
业界
文生图模型Stable Diffusion使用详解
0
263
县挫伪
2025-09-11
安全
iOS集成FaceAISDK实现人脸识别,活体检测
0
642
诈知
2025-09-11
业界
使用CalcBinding实现复杂逻辑绑定
0
635
缍米
2025-09-11
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
诀锺
2025-6-6 15:51:45
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多