Blog IT, Blog Marketing

LiveRecorder dla Javy

LiveRecorder dla Javy

Marcin Sarna , 03.09.2020 r.

Bo najlepsza nauka to ta na własnych błędach.

Odtwórz problemy

LiveRecorder for Java to nowo wydana aplikacja do odtwarzania awarii oprogramowania – dostępna tutaj. Umożliwia programistom rejestrowanie awarii aplikacji, a następnie odtwarzanie ich w IntelliJ w celu znalezienia przyczyny niepowodzenia. Pomaga skrócić czas debugowania, szczególnie w przypadku sporadycznych awarii.

Aplikacja rejestruje wszystkie kroki wykonania kodu aplikacji. Zapisywane są instrukcje x86 a więc na poziomie maszyny. Nagranie można odtworzyć, co jest dość podobne do debugowania, z wyjątkiem tego, że działa właśnie poprzez nagranie a nie w aplikacji na żywo. Czemu miałoby to być lepsze? Jest to szczególnie przydatne w przypadku debugowania awarii, które występują tylko od czasu do czasu. Na przykład, gdy wystąpi wyjątek, ponieważ wiele wątków uzyskuje dostęp do tego samego zasobu. Debugowanie sporadycznych błędów w działającej aplikacji jest dość trudne, ponieważ nigdy nie wiadomo, kiedy się pojawią. Dzięki LiveRecorder następuje nagranie awarii, a następnie można ją zdebugować za pomocą funkcji odtwarzania.

Wydajność siada

LiveRecorder może służyć do rejestrowania awarii aplikacji w dowolnym środowisku. Jednak nagrywanie powoduje spowolnienie od 2 do 5 razy dla większości programów. Zespół pracuje nad poprawą wydajności; w międzyczasie prawdopodobnie najlepiej jest unikać uruchamiania go w środowisku produkcyjnym (a jak wiem niestety to w środowisku produkcyjnym najłatwiej jest o napotkanie rzadko spotykanego błędu). Możliwe jest również rejestrowanie niepowodzeń w testach; dostępne są integracje z innym oprogramowaniem – na przykład możliwe jest uruchamianie LiveRecorder jako części potoku CI/CD, na przykład z Jenkins.

W praktyce

Proces jest podzielony na trzy części: nagrywanie, odtwarzanie i debugowanie w IntelliJ. Aplikacje do nagrywania i odtwarzania muszą działać w systemie Linux, IntelliJ może działać na dowolnej platformie.

Agent służy do zapisywania instrukcji aplikacji: -XX:-Inline -XX:TieredStopAtLevel=1 -XX:UseAVX=2 -Dsun.zip.disableMemoryMapping=true -agentpath:/path/to/lr4j-record-1.0.so=save_on=always.

Dostępne są różne opcje konfiguracyjne, na przykład do skonfigurowania nazwy pliku nagrania. Do ponownego odtworzenia nagrania służy aplikacja do odtwarzania:

/path/to/lr4j/lr4j_replay -i /path/to/recording.undo -cp classpath

Następnie można użyć wtyczki IntelliJ do połączenia się z aplikacją odtwarzania. Po udanym połączeniu czas na debugowanie aplikacji. Najważniejszym dodatkiem wtyczki IntelliJ jest „Oś czasu aplikacji” (Application Timeline).

Posłowie

Oddajmy głos wiceprezesowi Jonathanowi Harrisowi, który powiedział:

LiveRecorder oferuje obsługę języków programowania Java, C / C ++ i Go. Nagranie jest przenośne, co ułatwia udostępnianie nagrań członkom zespołu. Odtwarzać można do przodu i do tyłu. Teoretycznie każdy kod działający na JVM może być już teraz debugowany w narzędziu, w tym Java, Kotlin, Clojure, Scala czy Jython. Formalnie następnym wspieranym językiem stanie się Kotlin.

W planach jest także oficjalna obsługa Scala. Ze względu na głęboką integrację z jądrem Linuksa, obecnie stosowana technologia funkcji Undo koncentruje się na wirtualnej maszynie Java działającej na serwerach. W następnych wersjach deweloperzy LiveRecordera mają się skupić na obsłudze Visual Studio Code i dodawaniu wsparcia dla tej popularnej platformy programistycznej.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej