Category Archives: VM

Escape analysis

Dneska jenom krátce: Nedávno jsem zakopl o paper popisující partial escape analysis a napadlo mě, že bych tu mohl napsat pár slov o tom, co je escape analysis vlastně zač (termín s dovolením nebudu překládat a vystačím si s kurzívovou metodou). Escape analysis je … Continue reading 

Posted in Algo, JVM, VM | 8 Comments

Dualismus hardwaru a softwaru, strojů a virtuálních strojů

René Descartes věřil v myšlenku dualismu, který se dá diletantsky vysvětlit tak, že tělo a duše jsou dvě různé vzájemně neslučitelné kategorie. V podobném duchu se nese jiný dualismus, který je na rozdíl od Descarterových tvrzení méně metafyzický, ale zato je přítomný … Continue reading 

Posted in CPU, VM | Leave a comment

I ve Scale se dá psát rychlý generický kód za použití typeclass

Nedávno jsem tu psal o tom, jak se dá rychle vypočítat Jaccardova podobnost. Rychle bylo klíčové slova a jediná věc na které skutečně záleželo. Právě kvůli rychlosti jsem do knihovny sketches přidal verzi této rutiny (a pár dalších funkcí) specializovanou pro … Continue reading 

Posted in JVM, Scala, VM | Leave a comment

Jak JVM volá virtuální metody, jaká temná božstva musí vzývat, aby to bylo aspoň trochu rychlé

Aleksey Shipilёv v (ne)dávné době napsal velice obsáhlý článek o volání virtuálních metod v JVM: The Black Magic of (Java) Method Dispatch. Do detailů v něm popsal všechny způsoby, jak lze volat virtuální metody, vysvětlil všechny optimalizace, které JIT javovského virtuálního stroje dělá … Continue reading 

Posted in CPU, Java, JVM, Typy, VM | 1 Comment

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