- Spegnimento
- 20 agosto 2026 alle ore 22:18 UTC
- Autore
- Kamo
- Impegno
- 4c123b2
Quattro componenti aspettavano che il filo principale andasse tranquillo prima di fare il loro lavoro — il fascio di brindisi/consenso, il cromato di scorrimento, il tocco il beacon di riferimento — e ciascuno chiamato richiestaIdleCallback stesso. Ognuno era giusto da solo e sbagliato insieme: il browser non distribuisce un periodo minimo per chiamante, drena ogni richiamo in sospeso nella stessa. Misurato sulla homepage a 4x CPU throttle, i quattro licenziati a 2,359 / 2,361 / 2,413 / 2,444 ms. Che 85 ms cluster è il lungo compito che il rapporto attribuito al router chunk a ~2.4 s. Ora passano attraverso una coda condivisa che esegue un lavoro per un periodo minimo e cede al ciclo di eventi in mezzo. Il lavoro totale è identico; esso arriva come diversi compiti brevi invece di uno lungo, che è quello Blocco totale Il tempo conta effettivamente — solo la parte di un compito oltre 50 ms sta bloccando, quindi quattro compiti di 20 ms non costano nulla dove un 80 ms costi di attività 30 ms. onIdle restituisce un cancelliere in modo che i due siti di chiamata con vero la semantica li tiene: il faro non deve riportare una pagina che il lettore ha già a sinistra, e il touch spazzamento non deve correre dopo smontaggio. check-idle-queue.mjs fallisce la costruzione su una richiesta direttaIdleCallback fuori dalla coda, perché la persona successiva a differire qualcosa raggiungerà per esso e guarderà corretto in recensione.