从计划到代码为什么 task graph要写 read

上面这个场景里两个任务根本不并行加锁毫无意义

剑飞
1/14从计划到代码 为什么 task graph 要写 read set 和 write set

我开始遇到一个熟悉的瓶颈

** 先说说一个让我印象深刻的例子

命题先说清本页判断
解释补足为什么
行动留下下一步
2/14从计划到代码 为什么 task graph 要写 read set 和 write set

渲染 Markdown

但问题出在渲染和标签索引两个任务上
3/14从计划到代码 为什么 task graph 要写 read set 和 write set

做了原地覆盖保存

01命题

先说清本页判断

02解释

补足为什么

03行动

留下下一步

把“做了原地覆盖保存”落到一个具体项目里看结果
4/14从计划到代码 为什么 task graph 要写 read set 和 write set

我只规定了谁先谁后

命题先说清本页判断
解释补足为什么
行动留下下一步
把“我只规定了谁先谁后”落到一个具体项目里看结果
5/14从计划到代码 为什么 task graph 要写 read set 和 write set

任务 B 读取它来渲染页面

01命题

先说清本页判断

02解释

补足为什么

03行动

留下下一步

把“任务 B 读取它来”落到一个具体项目里看结果
6/14从计划到代码 为什么 task graph 要写 read set 和 write set

所以只要有任何一个任务变更

后来你改了任务 C(完全不相关的任务)触发了一个全局重跑——因为系统中没有任何细粒度的缓存键 所以只要有任何
7/14从计划到代码 为什么 task graph 要写 read set 和 write set

如果任务图知道 A 的 w

如果任务图知道 A 的 write_set 只有 `layout.json`而 B 的 read_set 只包含
8/14从计划到代码 为什么 task graph 要写 read set 和 write set

要么全不缓存(慢)

缺少 read_set 和 write_set你的缓存策略只能是非黑即白的——要么全缓存(危险) 要么全不缓存(慢)

命题先说清本页判断
解释补足为什么
行动留下下一步
9/14从计划到代码 为什么 task graph 要写 read set 和 write set

``` 任务 1

01命题

先说清本页判断

02解释

补足为什么

03行动

留下下一步

把“``` 任务 1”落到一个具体项目里看结果
10/14从计划到代码 为什么 task graph 要写 read set 和 write set

就重复了任务 1 的工作

但实际运行中任务 2 如果想获取某一篇文章的更多信息——比如发布时间——它需要重新解
11/14从计划到代码 为什么 task graph 要写 read set 和 write set

任务 2 是全新进程**

01命题

先说清本页判断

02解释

补足为什么

03行动

留下下一步

把“任务 2 是全新进”落到一个具体项目里看结果
12/14从计划到代码 为什么 task graph 要写 read set 和 write set

带走四步

找项目

从真实任务开始

出材料

把想法变成可处理内容

做交付

用结果判断能力

可复用

把完成沉淀为流程

13/14从计划到代码 为什么 task graph 要写 read set 和 write set

让能力长出来

上面这个场景里两个任务根本不并行加锁毫无意义