JVM Profiling & Instrumentation
Szczegóły
Prelegent : Jakub Dziworski
Standardowym podejściem do debuggowania problemów poza środowiskiem deweloperskim jest bazowanie na logach i metrykach wybranych przez nas zdarzeń i wartości. Polegając na intuicji, musimy z góry przewidzieć, co może przydać się w przyszłości. Często jednak kłopoty pojawiają się w nieprzewidzianych miejscach i są związane z innymi metrykami. Dotyczyć mogą wydajności, problemów związanych ze współbieżnością lub po prostu powodują działanie niezgodnie z założeniami systemu.
Co jeśli istniałby sposób na zajrzenie wgłąb JVM w trakcie działania i odczytanie dowolnej wartości? Co jeżeli dałoby się MODYFIKOWAĆ kod w trakcie wykonywania? Chciałbyś dodać kilka logów na produkcji w trakcie działania? Czujesz się spontanicznie i chcesz przeprowadzić szybki test A/B czasowo modyfikując metodę? Problem występuje na jednym środowisku, a na drugim nie? Jak porównać różnice? To wszystko jest możliwe i wspierane przez samą Javę poprzez Instrumentation API.
Podczas spotkania przyjrzymy się standardowym narzędziom do profilowania oraz w jaki sposób można znaleźć wąskie gardła naszych aplikacji. Profilery ogólnego przeznaczenia nie są jednak pozbawione wad, dlatego w drugiej części stworzymy własne rozwiązania opierając się na Instrumentation API.
