【背景】
做了 10 年性能优化,最常被 PM 和产品同学问的一句话是:「这个接口 P99 从 42ms 降到 41ms,用户能感知到吗?这 3 天的开发时间是不是浪费?」
我经历过两种极端:
- 某电商大促前,一个商品列表接口 P99 是 42ms,优化后降到 41ms,但开发团队花了 3 天时间,最终上线后大促期间未出现异常,但用户未感知到任何变化。
- 另一个场景是,一个高并发的支付接口 P99 从 50ms 降到 20ms,虽然开发时间也花了 3 天,但用户体验明显提升,且没有出现任何故障。
【常见分歧】
- 「优化就是加配置」:有些人认为性能优化只是简单地调大连接池、加缓存、或者调整超时时间,认为这些操作对性能提升有限,甚至可能带来额外的风险。
- 「ROI 优先」:有些人认为,性能优化应该优先考虑 ROI,即投入与回报比。例如,如果一个优化能带来 1ms 的 P99 降低,但需要投入 3 天时间,是否值得?
- 「用户体验优先」:有些人认为,只要用户能感知到性能提升,不管投入多少时间,都是值得的。例如,一个支付接口的 P99 从 50ms 降到 20ms,虽然开发时间长,但用户体验显著提升。
【我的倾向与理由】
我认为,性能优化应该是一个平衡点。首先,我们需要明确优化的目标:是提升用户体验,还是降低系统抖动?如果是提升用户体验,那么投入更多时间是值得的;如果是降低系统抖动,那么需要根据具体情况权衡。此外,我们还应该考虑优化的成本,例如开发时间、测试时间和运维成本。
【我想听大家在什么场景下怎么选】
- 你们的团队在什么情况下会选择投入大量时间进行性能优化?
- 你们有没有遇到过 P99 降了,但用户体验没有明显提升的情况?
- 你们有没有遇到过投入大量时间进行性能优化,但结果不如预期的情况?
欢迎大家分享你们的经验和观点!
0赞
0收藏
0楼层