项目实战-登录速度优化笔记
问题描述:
即时通信项目的客户端内网的环境下连接服务端,很快3-5秒内就登录成功,但是外网登录,却需要花费10-15s时间才能登录成功。虽然外网慢众所周知,但目前慢的比较多,给用户的体验感很不好。
分析问题:
我写了一份较为详细的登录过程速度慢的分析报告,主要是给领导看的。
简单截取一部分内容
登录过程
1)初始化服务
2)登录信息验证,验证用户名、密码是否正确
3)客户端注册后台服务
4)客户端缓存内存(用户信息、部门信息)
5)首次登录头像下载
6)登录完成(登录完成后主界面加载)
耗时分析
主要耗时点为客户端缓存信息到内存中,内网都要花近2秒的时间,外网花的时间更长。
缓存到内存中是为了尽量减少客户端登录后的数据库查询,经过测试去掉缓存到内存,登录过程仅需要1.5秒。
头像下载因为目前不是很大,首次登录更新头像花费时间在可接受的范围内。
解决办法:
(1)尽可能的优化客户端缓存内存的时间,比如缓存过程中减少查询内容,或者只查询需要的字段,缓存过程中只请求一次数据库
(2)获取所有用户的接口返回数据通过对象序列化成字符串,然后客户端获取后解析字符串,反序列化。
实践后效果:
使用方法一,只查询需要的字段后,优化效果就很明显了,外网登录由原来的12S+减少至3S+。
ps:这篇笔记是2年前的记录了,当时记录后想要发到博客园,一直没发,现在又翻看到,就发上来了。