Category Archives: PHP

Kolize hashů pro mírně pokročilé

Hash tabulka je jedna ze základních datových struktur, byla vynalezena roku 1953 a všichni, kdo programování viděli aspoň z rychlíku, ji velice dobře znají. Hash tabulky (někdy také hashmapy nebo slovníky/dicti­onary) umí vyhledat, přidat nebo smazat hodnotu asociovanou s určitým klíčem v konstantním čase. … Continue reading 

Posted in DS, Hashování, Java, PHP | 1 Comment

PHP compaction hell: Kdo neamortizuje, spláče nad O(n²)

Staré hackerské přísloví praví: „Nehledej, jak budou věci fungovat, ale jak selžou.“ Degenerativní chování je vždycky zajímavější než popis běžného provozu. Před nějakou dobou1 jsem aplikací této metodiky našel skulinu v připravovaném PHP 7, která dokáže rozpoutat perfektní bouři, která vyústí … Continue reading 

Posted in Hashování, PHP | 3 Comments

L1I cache a iTLB – když ani spekulace nepomůžou

Před několika dny Jan Smitka na twitter postnul výsledky benchmarků PHP7 a HHVM. Výsledek ukazuje, že PHP7 se rychlostí blíží HHVM a někdy ho i překonává. To je poněkud nečekané, protože, i když bylo PHP7 značně vylepšené a zrychlené, HHVM má plnohodnotný … Continue reading 

Posted in CPU, Paměť, PHP, VM | Leave a comment

Jak optimalizovat deoptimalizací

Když jsem si připravoval dnešní přednášku na Poslední Sobotu, ve které jsem plánoval odhalit všechny podivnosti v chování a výkonu PHP polí, a hrabal se v céčkovských zdrojácích Zend enginu, omylem se mi povedlo napsat rychlejší verzi funkce, kterou PHP používá k hashování … Continue reading 

Posted in CPU, PHP | 1 Comment

XPath – co, proč a hlavně jak?

Potom, co jsem na nedávné Poslední Sobotě mluvil o Matcheru, se zájem o tento nástroj znatelně zvýšil. Lidé začali posílat pull-requesty, bugreporty a maily s otázkami jak se dá udělat to či ono. Na všechny jsem rád odpověděl, protože dotazy byly buď triviální … Continue reading 

Posted in PHP | 5 Comments