Category Archives: VM

Mikrobenchmarky jsou těžké

Na Twitteru jsem zaznamenal vtipnou etudu. Stalo se to už před nějakou dobou, ale tenhle článek mi nedokončený ležel na disku. Nicméně začalo to tímhle tweetem. Podle všeho je v Javascriptu if (obj !== undefined) { return obj.x } v průměru o 15% … Continue reading 

Posted in VM | Leave a comment

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