k47.cz
mastodon twitter RSS
bandcamp explorer
««« »»»

Meta pěti vteřin/kult rychlosti

— k47

Po té včerejší nehodě mě docela bolí za krkem. Ukazuje se, že letět hlavou napřed do hliněného náručí matičky Země není úplně ideální způsob jak trávit soboty.

Z důvodu šíjových bolestí a permanentní ospalosti (to nemusí mít nic společného s havárií, ale jen se špatným spánkovým režimem), jsem seděl střídavě v Cele a jejím okolí, pil kafe tak silné, že z něj spontánně startovaly motory v okruhu tří kilometrů a dělal na asciiblogu.

Když říkám asciiblogu, nemyslím iteraci k47čky mezi 3. únorem 201731. prosincem stejného roku, ale software, který tento web pohání a generuje.

Vždycky je něco, co by se v něm dalo zlepšit, nějaké malé novinky, vychytávky a změny. Z větší části jde o machinace pod kapotou, téměř neviditelné pro čtenáře, který se zrovna neprodírá masivním archivem a nehledá chyby a podivnosti. Mezi viditelné novoty patří třeba seznam častých tagů (zobrazuje se na hlavní stránce pod prvním článkem) a lepší zobrazení na mobilech (za tohle můžete děkovat foto raiderovi J.). Není toho moc. Většina práce se totiž týká rychlosti. Nikoli rychlosti zobrazení nebo velikosti HTML stránek, ty jsem sesekal už dostatečně blízko minimu, ale rychlosti generování webu.

Online tvář K47čky je tvořená asi 4000 HTML dokumenty. Každý z nich je znovu vygenerován při každé aktualizaci – když udělám nějakou změnu a chci vidět, jak vypadá, musí se načíst kompletní zdrojové texty, rozlámat na články, jejich text naparsovat, data masírovat různě bizarními transformacemi a nakonec je přeložit do kryptických značek HTML jazyka.

Před pár týdny celý proces při paralelním běhu na 4 jádrech trval 8 vteřin. Teď trvá něco pod 6 vteřin na jediném vlákně. Můj cíl je dosáhnout 5 vteřin sekvenčního času. Vím jak se na tu metu dostat, je potřeba jen čas a trochu mazanosti – jít na to pomalu, měřit jaké kroky zaberou nejvíce času a postupně osekávat milisekundy po desítkách a stovkách. Většinou nejde o nic komplikovaného: Zbytečná práce je zbytečná, přílišná alokace stojí čas, regulární výrazy jsou pomalé a tak podobně.

Přitom na rychlosti nezáleží. Rozdíl tři vteřiny? Kdo ho ocení, když si ho vychutná nanejvýš párkrát denně. V případě asciiblogu jde o purismus – chci trefit pár absolutních met – maximální možná rychlost načítání stránky a maximální možná rychlost generování webu. Není k tomu žádný zvláštní důvod, ale ten není k ničemu. Jen jsem si vytyčil pravidla a chci podle nich hrát až do konce.


+1: V nejbližších dnech napíšu návod jak používat asciiblog k nastartování vlastního webu/blogu.

+2: Teprve teď jsem si všiml, že mám pěkně sedřené i pravé rameno. Kdyby se mi to stalo na asfaltu, byl bych rozebraný, jako kdyby mě někdo drbal struhadlem.

píše k47, ascii@k47.cz