Hodnotenie:
Momentálne nie sú žiadne recenzie čitateľov. Hodnotenie je založené na 75 hlasoch.
The Art of Writing Efficient Programs: An advanced programmer's guide to efficient hardware utilization and compiler optimizations using C++ examples
Zoznámte sa s rôznymi technikami zvyšovania výkonu, ako sú súbežnosť, programovanie bez zámkov, atomické operácie, paralelizmus a správa pamäte
Kľúčové vlastnosti:
⬤ Poznajte obmedzenia moderných procesorov a ich vplyv na výkon.
⬤ Zistite, ako sa môžete vyhnúť písaniu neefektívneho kódu a získať od kompilátora tie najlepšie optimalizácie.
⬤ Zoznámte sa s kompromismi a nákladmi pri písaní vysoko výkonných programov.
Popis knihy:
Veľký bezplatný obed, keď sa "výkon postará sám o seba", sa skončil. Donedávna sa programy zrýchľovali samé od seba, keď sa modernizovali procesory, ale to sa už nedeje. Taktovacia frekvencia nových procesorov už takmer dosiahla svoj vrchol. Nové architektúry poskytujú malé vylepšenia pre existujúce programy, ale to pomáha len mierne. Procesory sa síce zväčšujú a stávajú sa výkonnejšími, ale väčšinu tohto nového výkonu spotrebuje zvýšený počet procesorových jadier a ďalších "extra" výpočtových jednotiek. Ak chcete písať efektívny softvér, musíte teraz vedieť programovať tak, že dobre využijete dostupné výpočtové prostriedky, a táto kniha vás naučí, ako to urobiť.
Kniha sa zaoberá všetkými hlavnými aspektmi písania efektívnych programov, ako napríklad efektívnym využívaním zdrojov procesora a pamäte, vyhýbaním sa zbytočným výpočtom, meraním výkonu a správnym využívaním súbežnosti a viacvláknovosti. Dozviete sa aj o optimalizáciách kompilátora a o tom, ako efektívnejšie používať programovací jazyk (C)+). Nakoniec pochopíte, ako rozhodnutia o návrhu ovplyvňujú výkon.
Na konci tejto knihy budete mať nielen dostatočné znalosti o procesoroch a kompilátoroch, aby ste mohli písať efektívne programy, ale budete tiež schopní pochopiť, ktoré techniky používať a čo merať pri zvyšovaní výkonu. Jadrom tejto knihy je naučiť sa, ako sa učiť.
Čo sa naučíte:
⬤ Zistíte, ako efektívne využívať hardvérové výpočtové prostriedky vo svojich programoch.
⬤ Pochopiť vzťah medzi poradím pamäte a pamäťovými bariérami.
⬤ Oboznámiť sa s dôsledkami rôznych dátových štruktúr a ich organizácie na výkon.
⬤ Ohodnotiť vplyv súbežného prístupu do pamäte na výkon a ako ho minimalizovať.
⬤ Zistiť, kedy použiť a kedy nepoužiť techniky programovania bez zámkov.
⬤ Preskúmať rôzne spôsoby zlepšenia účinnosti optimalizácie kompilátora.
⬤ Navrhnite API pre súbežné dátové štruktúry a vysoko výkonné dátové štruktúry, aby ste sa vyhli neefektívnosti.
Pre koho je táto kniha určená:
Táto kniha je určená skúseným vývojárom a programátorom, ktorí pracujú na projektoch kritických z hľadiska výkonu a chcú sa naučiť rôzne techniky na zlepšenie výkonu svojho kódu. Programátori, ktorí patria do komunít algoritmického obchodovania, hier, bioinformatiky, výpočtovej genomiky alebo výpočtovej dynamiky tekutín, sa môžu z tejto knihy naučiť rôzne techniky a uplatniť ich vo svojej pracovnej oblasti.
Hoci sa v tejto knihe používa jazyk C++, koncepty demonštrované v knihe sa dajú ľahko preniesť alebo aplikovať na iné kompilované jazyky, ako sú C, Java, Rust, Go a ďalšie.