Cum a dublat Michael Abrash framerate-ul în Quake: lecții de optimizare și astăzi
Legendarul optimizator Michael Abrash a accelerat Quake la cote nemaivăzute – nu e magie, ci assembly pur și cunoașterea hardware-ului.

V-ați uitat vreodată la cod și ați zis: „Eh, compilatorul optimizează singur”? Michael Abrash, guru al optimizării din anii '90, a arătat cu Quake că uneori compilatorul e doar un stagiar leneș care nu știe toate secretele procesorului.
Abrash a rescris manual părțile critice ale randării în assembly, folosind trucuri precum precalcularea sinusurilor/cosinusurilor prin tabele și gestionarea manuală a registrelor. Rezultatul? FPS-ul s-a dublat pe același hardware. Imaginați-vă că optimizați o aplicație React și dintr-o dată serverul nu mai e necesar, totul zboară pe client. Cam așa a fost.
Multe dintre tehnicile lui (de exemplu, utilizarea instrucțiunilor SIMD) sunt valabile și azi – mai ales în gamedev și highload. Dacă credeți că compilatoarele moderne fac totul pentru voi, amintiți-vă de Quake: uneori mâna maestrului face minuni, mai ales când trebuie să scoți ultimele cadre din procesor.
Comentariul studioului METABYTE: Optimizarea e o artă, și o iubim. Dacă proiectul vostru merge încet, nu vă grăbiți să faceți upgrade la server – poate câteva inserții assembly sunt de ajuns? Glumim, dar e un sâmbure de adevăr: știm să găsim blocaje și să facem codul mai rapid fără costuri suplimentare.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.