Tuning JVM, czyli warsztaty JVM z Jarkiem Pałką

Przełom jesieni i zimy 2017 roku był wyjątkowo intensywny dla Symentis. Dziś kilka słów o listopadowych warsztatach „JVM: przez dziurkę od klucza” – czyli tuning JVM w wykonaniu Jarka Pałki.

Całodniowe warsztaty JVM odbyły się 4 listopada, w Łodzi i były przeznaczone dla osób, które zaczynają przygodę z optymalizacją JVM. Jarek Pałka, jak sam wskazuje, zabrał uczestników wydarzenia w podróż w głąb wirtualnej Javy.

O ile wszyscy doskonale zdajemy sobie sprawę z tego, że JVM jest złożoną, napędzającą systemy maszyną, która nieustannie przerzuca terabajty obiektów między generacjami w GC, co więcej… generuje strumienie optymalnego kodu skompilowanego przez jeden z kompilatorów JIT, przy jednoczesnych próbach dialogu z systemem operacyjnym… O tyle nieczęsto zastanawiamy się nad tym, czy w tej skomplikowanej maszynowni wszystko działa zgodnie z naszymi oczekiwaniami. Uczestnicy warsztatów stanęli wobec pytań o to gdzie szukać informacji na temat wszystkich tych procesów, jak odczytywać i jak interpretować wartości metryk, a także – kiedy winą można obarczać JVM, kiedy aplikację, a kiedy system operacyjny.

Jarek Pałka wskazał szereg dostępnych narzędzi, „magiczne przełączniki” i rozwiązania – swoiste niezbędniki warsztatu każdego „kryminologa” JVM. Nie zabrakło uwag na temat zapisywania zdarzeń z JVM, czy narzędzi ukrytych w JDK (w tym Java Mission Control i Flight Recorder). Rzecz jasna, doceniliśmy także narzędzia dostępne w systemie operacyjnym Linux.

Podczas warsztatów nie zabrakło zawiłości kryminalistyki JVM i wkraczania w uruchomione procesy bez dostępu do kodu źródłowego. Ponadto skupiliśmy się na JMH (Java Microbenchmark Harness) – narzędziu, które pozwoliło nam pisać testy wydajnościowe naszego kodu. Uczestnicy poznali zatem API JMH oraz sposoby konstruowania tych testów. Wszystko oparliśmy na kilku przykładach, które porównały (między innymi) wydajność struktur danych dostępnych w Java SDK.

Warsztaty „JVM: przez dziurkę od klucza” zgromadziły kilkudziesięciu adeptów JVM. W ciągu kilku godzin wspólnie odkryliśmy co robi JVM, gdy nikt nie patrzy… Ciekawi?

(Foto: https://www.facebook.com/groups/juglodz/)