本章进度 16 / 18
89%
数据结构与算法直觉·理解·10 分钟
正文已完成

方案取舍要比较整组代价

把速度、内存、复杂度、可靠性和可维护性放在同一张决策表中。

L291
为什么现在学

先用本课建立“方案取舍”的基本直觉,后面的判断和练习才不会只靠记结论。

本课会用什么
  • 无需安装新工具
  • 直接阅读并完成本页理解检查

工程方案很少在所有维度都更好。缓存减少等待却带来失效问题,并行提高吞吐却增加协调难度,第三方服务省开发时间却引入依赖。成熟判断会把整组代价说清楚。

这一课的结果

能解释一个技术方案优化了什么,又把代价转移到了哪里。

核心概念

先把关键判断说清楚

01

优化总有支付方

更快通常用内存、预计算或复杂度支付;更简单可能用性能或灵活性支付。

02

失败成本决定权重

作品展示页可接受短暂降级,结算系统更看重一致性与可恢复,不能共用同一权重。

03

可逆性降低决策风险

能小范围试点、保留回滚和逐步迁移的方案,即使初始收益相近,也更适合不确定环境。

案例拆解

搜索缓存的收益与失效代价

团队希望给课程搜索加缓存以减少 80 毫秒查询,但课程更新后旧标题可能保留一小时。

  1. 01

    列出收益是热门查询减少计算,p95 预计下降 30 毫秒。

  2. 02

    列出代价是缓存内存、失效逻辑、更新后短暂陈旧和调试复杂度。

  3. 03

    发现当前流量低且延迟已达标,决定暂不缓存,只保留指标与触发阈值。

案例结果

团队避免为微小收益引入长期一致性成本,同时保留未来重评条件。

提交前练习

现在轮到你

选择一个正在讨论的技术方案,写出它的收益、支付代价和可逆性。

选做练习:本节练习可用于加速你巩固,但不影响继续学习。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

方案是将图片处理并行化;收益是总耗时预计从 20 分钟降到 6 分钟;代价是峰值内存和失败合并复杂度;失败会延迟内部发布;先对 10% 任务启用,并保留串行开关与原文件。

评分标准

  • 收益有测量口径
  • 至少列出两类代价
  • 可逆设计能实际执行

本课收口 · 理解检查

用 30 秒确认你理解了

用 30 秒理解检查确认你抓住了重点;阅读标记、练习和总结都不设硬门槛。

0 / 1
02完成练习(选做)0 / 4 项已填写,不影响完成03通过理解检查点此去回答,约 30 秒
04补一句总结(可选)可以留空,不影响完成本课。
下面哪项最符合工程取舍?
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。

资料来源

继续核对与延伸阅读

本课内容最近更新于 。