Kacam.net

世界を見る

コンピュータシステム:一度に一箇所だけ

「メモリ管理」「ネットワーク」ではなく、「TLB ミスとページフォルトはどれだけ違うか」「最初の 1 バイトまで何往復したか」—— 一本で一箇所だけ、数の桁を言えるまで掘ります。

このプロンプト集は今のところ简体中文だけです。

使い方

この一群は学習型です:答えられなくなるまで追い込むのではなく、導きます。詰まったらまず「どの層で詰まったか」を聞き(聞いたことがない/知っているがなぜかは分からない/分かるが使えない)、それから何を渡すか決めます。同じ点で二度導いても通じなければ初めて答えを言い、そのあと自分の言葉で言い直させます。

ずっと数を求めてきます:「オーバーヘッドがある」「速い」と答えると止められます。桁を言えない結論は暗記した結論 —— この一群が鍛えるのはまさにそこです。

始め方

  1. 一本選んで開き、プロンプトをコピーします。
  2. 新しい空の会話に貼り、何も言わずに最初の質問を待ちます。
  3. 桁を聞かれる覚悟を:何ナノ秒、何マイクロ秒、何倍違うか。分からなければそう言えば、記録して先へ進みます。

途中でいつでも使える四つの合図

  • 跳过 すぐ次の場面へ
  • 换个说法 ここを別の角度でもう一度説明してもらう
  • 直说吧 答えを全部聞き、そのあと自分で言い直す
  • 复盘 すぐ締めに飛んで、振り返りカードを出してもらう

三つの落とし穴

  • 末尾の手札を先に読まないこと —— あの「よくある思い違い」の欄が、そのまま各問の答えです。
  • 用語に飛びつかないこと。「これは TLB ミス」と言うのは簡単で、ページフォルトより何桁速いかを言えて初めて分かったことになります。
  • 褒め始めたら「褒めないで」の鉄則を見るように言ってください。導くことは甘やかすことではありません。

桁の感覚を作りたいならランダム読みと最初の 1 バイトから。障害調査に効くのは malloc・TCP の詰まり・コンテキストスイッチ。並行コードを書くなら並べ替えと偽共有を。

メモリ

一次内存读,硬件走了几步
一次普通的内存读,硬件到底走了几步?
★★★★☆ · 約 35 分
malloc 返回之后,内存就归你了吗
8GB 的机器上 malloc(4GB) 两次,会成功吗?
★★★☆☆ · 約 30 分
mmap 省掉的到底是哪一次拷贝
「mmap 是零拷贝所以更快」——省的是哪一次,代价换到哪去了?
★★★★☆ · 約 30 分

並行性

重排序,是编译器干的还是 CPU 干的
你说的重排序,是编译器干的还是 CPU 干的?
★★★★★ · 約 40 分
改的是不同的变量,为什么互相拖慢
8 个线程各改各的计数器,为什么比单线程还慢?
★★★★☆ · 約 30 分
一次上下文切换,贵在哪
切换的成本主要不是保存寄存器 —— 那是什么?
★★★★☆ · 約 30 分

ストレージ

一次 4KB 随机读,时间花在哪
说 SSD 快,快在哪一项上?快多少倍?
★★★☆☆ · 約 30 分
write 返回了,断电之后数据还在吗
write 返回了,一秒后断电 —— 数据还在吗?
★★★★☆ · 約 35 分

ネットワーク

第一个字节到达之前,来回跑了几趟
打开一个 2KB 的接口,网络上来回跑了几趟?
★★★☆☆ · 約 30 分
两端都没挂,数据为什么过不去
两端都没挂,数据就是过不去 —— 卡了 40 毫秒还是 200 毫秒?
★★★★☆ · 約 35 分
このプロンプトはオープンソースです 本文は公開リポジトリ kacam-net/hero-prompts で管理しています。追及が甘い、手の内が一行足りない —— そう思ったら直しに来てください。サイトに載せるかどうかは別の判断で、こちら側の一覧が決めます。