Linux E X P R E S

Facebook

Výkonnost open source aplikací

vykonnost_aplikaci.png

Knihy z edice CZ.NIC mě jako čtenáře oslovují často a jinak tomu nebylo ani u titulu Výkonnost open source aplikací. Kniha s podtitulem Rychlost, přesnost a trocha štěstí, kterou z různých článků editoval Tavish Armstrong, poskytuje náhled do zcela odlišných oblastí vývoje softwaru z různých úhlů. A vše začíná pěkně zostra.


Zostra už od začátku

Webový prohlížeč Google Chrome není třeba představovat, je původně založen na technologii WebKit, za kterou stojí firma Apple. Už od počátku vývoje byl tým postaven před jasný úkol – všechno musí být od prvního dne zaměřeno na výkon. Tématem první kapitoly je tedy síťová vrstva použitá v Chrome, Chrome OS a Chrome Android.

Na úvod je výklad věnován typickým problémům, kterým čelí webové prohlížeče, a tedy vyřízení DNS požadavků, navazování HTTP spojení, SSL a transport dat. Těžko lze popsat veškeré optimalizace síťového stacku v Chrome, proto bylo vybrané velice zajímavé téma predikce a před-načítání stránek.

Hned druhá kapitola věnující se projektu EtherCalc ukazuje, že si čtenář musí zvyknout na různý typ výkladu. Věnuje se popisu tabulkového procesoru napsaného v Node.js a nejde příliš do hloubky. Ovšem další kapitola o buildovacím systému Ninja používaném ve firmě Google patří mezi nejzajímavější kapitoly a poskytuje vyvážený mix popisu problému a ukázek kódu.

Optimalizace zpracování XML

Část pojednávající o optimalizujícím XML parseru je doslova „žrádlo“, technika parsování na místě („in situ“) řešící problém časté alokace (problém všech DOM XML parserů) byla pro mě úplná novinka. Techniky použité ve jmenovaném open source projektu jsou velmi zajímavé a poučné.

Je tomu už dávno, co Google Chrome sesadil Firefox z pozice nejrychlejšího prohlížeče pro masy, nicméně vývojáři z Mozilly se nechtěli dát tak snadno a vytvořili nástroj pro měření paměti MemShrink, se kterým identifikovali a opravili mnoho problémů v této oblasti. O tom pojednává pátá kapitola, ze které bych citoval víceprezidenta Mozilly: „Je to svět, který jsme chtěli, je to svět, který jsme vytvořili“. Tato část je méně technická, přináší pohled na práci open source komunity. Kniha obsahuje také kapitolu o testovacím systému Talos, taktéž z díly Mozilly.

Dvě kapitoly se věnují podobnému tématu servírování webových aplikací ve vysoce konkurenčním prostředí. První detailně popisuje CMS framework napsaný v Erlangu a zaměřuje se víceméně na kešování, druhá se zaobírá HTTP serverem napsaný v Haskelu. Společnou vlastností obou jazyků jsou lehká vlákna (green threads), které spolu s neblokující architekturou poskytují dostatečný výkon. V dnešní době je toto téma velmi aktuální a veškerou pozornost na sebe strhává jazyk Go, který poskytuje podobné vlastnosti (goroutines).

Mírně exotičtější témata

Témat v knize je víc, například velmi zajímavá technologie Infinispan, Big Data nebo možná až příliš profesorsky pojatá CORBA. Některé kapitoly jsem měl nutkání přeskočit, to je však v pořádku. Kniha je soubor zajímavých článků na různá témata, kvalita však zůstává vysoká. Některé články jsou více teoretické, jiné čistě praktické. Z knihy si vybere to své naprosto každý čtenář zajímající se o problematiku ladění výkonu softwaru. Titul nezklamal a já se těším na další knížky z edice CZ.NIC.

Autor: Tavish Armstrong (editor)
Název: Výkonnost open source aplikací
Nakladatelství: CZ.NIC, z. s. p. o.
Rok vydání: 2016
Počet stran: 270
Formát: 170×240 mm
EAN: 9788088168140

Diskuze (0) Nahoru