前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【性能优化方法论系列】四、性能优化的注意事项

【性能优化方法论系列】四、性能优化的注意事项

作者头像
明明如月学长
发布2022-07-12 16:33:28
2100
发布2022-07-12 16:33:28
举报

4.1 避免过早优化

在设计性能优化方案时,要注意避免过早优化,要考虑投入产出比

在产品初期,只要性能不会特别影响用户体验,通常不需要特别关注性能问题。

可以把更多的精力投放到满足用户的核心需求,提高产品销量,让产品生存下来。

4.2 考虑其他指标

考虑性能优化的同时要注意可读性、可用性、稳定性、正确性、可拓展性、安全性等

在这里插入图片描述
在这里插入图片描述

一般来说,软件设计的原则应该优先于性能优化的原则。即不能为了性能优化而破坏软件设计的原则,给后续的拓展维护埋坑。比如设计要符合 “高内聚、弱耦合”、“封装复杂度”;比如设计模式的一些基本原则: “单一职责原则”、“迪米特法则”、“开闭原则”、“里氏替换原则”、”接口隔离原则”、“组合复用原则” 等。

在数据量不是超大的情况下,纯内存操作相对是比较快的,千万不要为了省一两次 for 循环而写出非常难以读懂的代码。

如在使用缓存来加快访问速度时,要考虑必要性。还要考虑数据库和缓存的一致性问题。

在实际工作中就遇到有同学为了提高性能,对某个看起来一定不会修改的数据加了缓存,超时时间设置好几十分钟,然而由于忽略了某个导致变更的入口,最终因缓存和实际数据不一致引发线上故障。这里有个小技巧,加缓存时一定要慎重思考缓存超期时间,如果没有太大把握,可以加个动态开关在出现问题时可以及时调整。如果没有太大把握,在能满足业务需求的情况下,尽量将超期时间设置短一些。

再比如, fastjson 虽然宣称性能很不错,但是屡屡爆出安全漏洞,给用户带来很多困扰,很多人也不会选择这个框架,这也说明性能不是全部。

4.3 优化体验

有些时候,在现有技术条件下无论怎样都很难优化到让人满意的效果时,可以想办法提升用户体验。

比如很多视频平台在视频卡顿时会增加 loading 效果;很多银行 app 转账时,会有 “等待 xx s” 的倒计时;支付宝的转账支持通过账单详情查看转账的处理进度。

在这里插入图片描述
在这里插入图片描述

比如我们设计某数据导出到 excel 文件供用户下载的功能,可以在用户下载前的某个时机提前生成好,也可以参考上面的性能优化方法提高生成的速度。但如果怎么提高速度都很难在一两秒钟处理完成,如果在相对能够接受的时间内,如 10s ,能处理完成可以前端加 loading 效果,如果还需要更久的时间,即使加上 loading 用户也很难接受,则可以参考上述做法,异步查看处理进度。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.1 避免过早优化
  • 4.2 考虑其他指标
  • 4.3 优化体验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档