1. 优化的目的
1.1. 服务端
- 提升QPS
- 降低Server RT
- 降低硬件成本
1.2. 用户端
- 降低时延
- 提升用户体验
- 提升转化率、留存率、交易量
2. 瓶颈
2.1. cpu
- 字符拼接、查找、替换
- encode decode
- zip压缩
- 序列化 反序列化
- 异常捕获
2.2. IO
- 序列化 反序列化
- 网络IO
- DNS缓存
- CDN加速
2.3. memory
- GC的速度,合理的GC回收器
2.4. db
- 慢查询
- 脱库
3. 应对方式
3.1. cpu
- 正则表达式匹配
过长的正则表达式匹配,会消耗极大的内存
- 字符拼接、查找、替换
合理使用StringBuilder,不使用StringBuffer。
- encode decode
可以把一些加解密的流程拆出来,作为一个高级别的应用独立维护
- zip压缩
不放在核心服务中
- 序列化 反序列化
使用性能更好的序列化工具,如uProtoBuff
- 异常捕获
较少异常捕获
3.2. IO
- 网络IO
可以优化IO总量,比如把字段名缩写,IdCord->id;Number->No
-
DNS缓存
-
CDN加速
3.3. memory
- GC 选择合理的GC方案,设置合适的内存大小
3.4. db
- 慢查询
索引
- 脱库
limit 限制