Category Archives: JVM

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

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

Bez typů se obejdeme, ale…

Však to znáte, něco tweetnete a jedna odpověď vás donutí napsat celý článek jako vysvětlení, co je tím vlastně myšleno. Dneska to byla tato perla nevšední krásy (odsud): Without soundness, types can merely be used as optimisation hints, but the … Continue reading 

Posted in JVM, Typy, VM | Leave a comment

Haldy nejsou tak velké, jak se se zdají být

Nedávno jsem narazil na zajímavý test, který se snažil nahrubo určit kolik paměti potřebují různé datové struktury na JVM: kolekce z Javy, Scaly, Googlí Guava a kolekce Trove specializované pro primitivní typy. Test probíhal tak, že nastartoval JVM s 1GB heap, vytvořil … Continue reading 

Posted in JVM, Paměť | 5 Comments