Kacam.net

Die Welt sehen

Systeme: immer nur ein Stück

Nicht „Speicherverwaltung“ oder „Netzwerk“, sondern „wie weit liegen ein TLB-Miss und ein Page Fault auseinander“ und „wie viele Runden bis zum ersten Byte“ — eine Übung bohrt an genau einem Stück, bis du eine Größenordnung nennen kannst.

Diese Vorlagen gibt es bisher nur auf 简体中文.

So funktioniert es

Diese Reihe lehrt, statt zu verhören: sie führt dich, statt zu bohren, bis dir nichts mehr einfällt. Wenn du hängst, fragt sie zuerst, auf welcher Ebene (nie gehört / weiß es, aber nicht warum / weiß warum, kann es aber nicht anwenden), und entscheidet dann, was sie gibt. Erst nach zwei Anläufen sagt sie es direkt — und lässt dich es danach in eigenen Worten wiederholen.

Sie fragt unablässig nach Zahlen: „das kostet etwas“ oder „das ist schneller“ wird abgebrochen. Eine Schlussfolgerung ohne Größenordnung ist auswendig gelernt — genau das trainiert diese Reihe.

So fängst du an

  1. Eine auswählen, öffnen, den Prompt kopieren.
  2. In ein ganz neues, leeres Gespräch einfügen, nichts sagen, auf die erste Frage warten.
  3. Rechne damit, Größenordnungen nennen zu müssen: wie viele Nanosekunden, wie viele Mikrosekunden, um welchen Faktor langsamer. „Weiß ich nicht“ ist in Ordnung — sie notiert es und macht weiter.

Vier Zurufe, jederzeit möglich

  • 跳过 sofort zur nächsten Szene
  • 换个说法 diese Stelle aus einem anderen Blickwinkel erklären
  • 直说吧 die Antwort ganz sagen und mich danach wiederholen lassen
  • 复盘 direkt zum Abschluss springen und die Auswertungskarte ausgeben

Drei Fallen

  • Lies das Lösungsblatt am Ende nicht vorher — der Abschnitt „so denkt man es sich falsch“ ist die Antwort auf jede Frage.
  • Greif nicht sofort zum Fachwort. „Das ist ein TLB-Miss“ ist leicht gesagt; zu sagen, um wie viel billiger er als ein Page Fault ist, zählt.
  • Wenn sie anfängt, dich zu loben, verweise sie auf die Regel „lob mich nicht“. Führen ist kein Bemuttern.

Für das Gefühl für Größenordnungen: erst Random Reads, dann das erste Byte. Für Produktionsanalyse: malloc, TCP-Stockungen, Kontextwechsel. Für nebenläufigen Code: Umordnung und False Sharing.

Speicher

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

Nebenläufigkeit

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

Speichermedien

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

Netzwerk

第一个字节到达之前,来回跑了几趟
打开一个 2KB 的接口,网络上来回跑了几趟?
★★★☆☆ · etwa 30 Min.
两端都没挂,数据为什么过不去
两端都没挂,数据就是过不去 —— 卡了 40 毫秒还是 200 毫秒?
★★★★☆ · etwa 35 Min.
Diese Prompts sind Open Source Der Text wird im öffentlichen Repository kacam-net/hero-prompts gepflegt. Wenn einer nicht hart genug nachbohrt oder seiner Auflösung eine Zeile fehlt: geh hin und ändere ihn. Ob er hier erscheint, ist eine eigene Entscheidung und hängt am Katalog auf dieser Seite.