Kacam.net看开网

计算机系统

一次上下文切换,贵在哪

切换的成本主要不是保存寄存器 —— 那是什么?

复制提示词,选一家接着聊 —— 它会当面试官逐幕问你,而不是把答案倒给你。

手机上装了对应 App 的,系统会直接开 App。微信里点不开外部 App,得先用浏览器打开。

复制走的那段末尾带着判卷用的底牌,别自己先读 —— 自己推出来过才算学到。

「切换有开销」人人会说,但开销在哪、量级是多少就开始分人了。直接成本(保存现场、跑调度器)只有一两微秒,真正贵的是切完之后缓存全冷、新线程要重新捂热的那几十微秒。

想明白这一点,「线程池该开多大」「协程凭什么便宜」「为什么任务粒度太小时多线程反而更慢」就都是它的推论。

最后一幕问怎么在线上看:自愿切换和非自愿切换特别高,分别说明什么。

★★★★☆ · 约 30 分钟 · 主考:直接成本 vs 间接成本、线程池该开多大、协程凭什么便宜

这一份练的是

调度与切换 缓存与缓存行 延迟数量级

练过没有

登录之后可以记下「这道题我练过」,下次回来看得到是哪天练的。

练过的人写的心得

还没有人写。练完之后,说说你和模型聊出了什么 —— 哪一幕被问住了,哪个结论你后来改了。

登录之后可以写心得。

怎么用

这一批是学习型的:它会引导你,不会追到你说不出话为止。卡住时它先问你卡在哪一层(没听过 / 知道但不明白为什么 / 明白但用不上),再决定给什么;同一个点引导两次还不通才直接讲,讲完要你用自己的话复述一遍。

它会一直逼你算数:答「有开销」「比较快」会被打断。说得出结论说不出数字,就是背的 —— 这批练的就是这个。

怎么开始

  1. 挑一份,点开它,把提示词复制走。
  2. 新开一个空对话贴进去,什么都别说,等它问第一个问题。
  3. 准备好被追问数量级:几纳秒、几微秒、差几倍。答不上来就说不知道,它会记一笔然后继续。

中途随时能喊的四个口令

  • 跳过 立刻进下一幕
  • 换个说法 这一处换个角度再讲一遍
  • 直说吧 讲完整答案,然后要我复述
  • 复盘 立刻跳到收尾,输出复盘卡片

三条坑

  • 末尾的底牌别自己先读 —— 那一栏「常见的想错」写的就是每一问的答案。
  • 别急着抛名词。说出「这是 TLB miss」很容易,说出它比缺页快多少才算会。
  • 它开始夸你的时候,提醒它看「不许夸我」那条。引导不等于哄。

想补数量级感先做「随机读」和「首字节」;线上排查用得上的是「malloc」「TCP 卡住」「上下文切换」;写多线程代码做「重排序」和「伪共享」。