Kacam.net

Vedere il mondo

Sistemi: un pezzo alla volta

Non «gestione della memoria» o «rete», ma «quanto distano un TLB miss e un page fault» e «quanti giri prima del primo byte»: ogni scheda scava un pezzo solo, finché non sai dare un ordine di grandezza.

Per ora queste istruzioni esistono solo in 简体中文.

Come si usa

Questa serie insegna invece di interrogare: ti guida invece di incalzarti finché non hai più nulla da dire. Quando ti blocchi chiede prima a che livello (mai sentito / lo so ma non so perché / so perché ma non lo applico) e poi decide che cosa darti. Solo dopo averti guidato due volte te lo dice, e allora ti chiede di ripeterlo con parole tue.

Ti chiederà numeri di continuo: se rispondi «ha un costo» o «è più veloce» ti interrompe. Una conclusione senza ordine di grandezza è una conclusione imparata a memoria — ed è proprio ciò che questa serie allena.

Come iniziare

  1. Scegline una, aprila, copia il prompt.
  2. Incollalo in una conversazione nuova e vuota, non dire nulla e aspetta la prima domanda.
  3. Preparati a dare ordini di grandezza: quanti nanosecondi, quanti microsecondi, quante volte più lento. Dire che non lo sai va bene: lo annota e prosegue.

Quattro comandi da lanciare in qualsiasi momento

  • 跳过 passa subito alla scena successiva
  • 换个说法 rispiega questo punto da un'altra angolazione
  • 直说吧 dai la risposta completa e poi fammela ripetere
  • 复盘 salta alla chiusura e stampa la scheda di bilancio

Tre trappole

  • Non leggere prima la soluzione in fondo: quella sezione sugli «errori di ragionamento più comuni» è la risposta a ogni domanda.
  • Non buttarti sul termine tecnico. Dire «è un TLB miss» è facile; dire di quanto costa meno di un page fault è ciò che conta.
  • Quando comincia a lodarti, rimandalo alla regola «non lodarmi». Guidare non è coccolare.

Per farti gli ordini di grandezza: letture casuali e poi il primo byte. Per il debug in produzione: malloc, stalli TCP, cambi di contesto. Per il codice concorrente: riordino e falsa condivisione.

Memoria

一次内存读,硬件走了几步
一次普通的内存读,硬件到底走了几步?
★★★★☆ · circa 35 min

Concorrenza

重排序,是编译器干的还是 CPU 干的
你说的重排序,是编译器干的还是 CPU 干的?
★★★★★ · circa 40 min
改的是不同的变量,为什么互相拖慢
8 个线程各改各的计数器,为什么比单线程还慢?
★★★★☆ · circa 30 min
一次上下文切换,贵在哪
切换的成本主要不是保存寄存器 —— 那是什么?
★★★★☆ · circa 30 min
Questi prompt sono open source Il testo è mantenuto nel repository pubblico kacam-net/hero-prompts. Se uno non incalza abbastanza, o alla sua soluzione manca una riga, vai a cambiarlo: che finisca online qui è un'altra decisione, la prende il catalogo da questa parte.