Stack, znany również jako czas wykonawczy lub Stack Call, to zbiór ramek stosu utworzonych przez program, podczas gdy działa i przechowywany w strukturze danych stosu. Maszyna wirtualna Java (JVM) automatycznie wygeneruje ślad stosu, gdy wystąpi wyjątek. Tak więc ten artykuł zawiera wytyczne dotyczące tego, jak możesz użyć śladu stosu procesu uruchamiania w Javie.
Co jest śledzeniem stosu w Javie
Teraz przed utworzeniem pliku Java musisz upewnić się, że zainstalowałeś aplikację Java Development Kit (JDK) w systemie operacyjnym Linux, w przeciwnym razie nie będziesz mógł wykonać żadnego programu Java, wpisując:
$ sudo apt Zainstaluj default-jdkPo zainstalowaniu tej wymaganej aplikacji musisz utworzyć plik Java i jednym z najłatwiejszych sposobów tego, jest użycie dowolnego edytora tekstu, wpisując:
$ nano javastackTrace.JawaPo utworzeniu pliku Java następnym krokiem jest napisanie i zapisanie w nim kodu, który można zobaczyć poniżej:
Po zapisaniu pliku Java następnym krokiem jest skompilowanie i uruchomienie:
$ Javac JavastackTrace.JawaMożesz zobaczyć, że napisaliśmy demofun3 () jako ostatnia funkcja podczas pisania kodu, ale została wykonana w drugim wierszu, ponieważ jest to punkt generowania śledzenia, który będzie odpowiedzialny za wykonanie Dumpstack () który wyświetli wyjście na ekranie. Pozostałe funkcje zaczynające się od demofun2 () Do demofun () później wykonuje się w kolejności odwrotnej i główny() Funkcja jest wyświetlana na dole, ponieważ jest odpowiedzialna za uruchomienie programu, a także wywoła inne funkcje.
Można powiedzieć, że punkt wykonania stosu zaczyna się od pierwszego wiersza, a ramka stosu zaczyna się od drugiej linii do ostatniego wiersza, która składa się na całe stosowanie śladu stosu. Możemy zauważyć, że metoda wykonana najpierw staje się ostatnią ramą stosu stosu, podczas gdy metoda, która jest ostatnio wykonana.
Jak układać ślad procesu działającego
JSTack to doskonałe narzędzie do rozwiązywania problemów z czasem działania, szczególnie jeśli aplikacja działa, zużywając więcej procesora lub pamięci niż oczekiwano, możesz rozwiązać problem z aplikacją. Zaimplementujmy to w Javie:
Klasa publiczna ForcedumpNastępnie możesz utworzyć plik Java za pomocą dowolnego edytora tekstu, tak jak my za pomocą nano edytora tekstu, jak pokazano poniżej
$ Nano Forcedump.JawaPo tym skompiluj go za pomocą:
$ Javac Forcedump.JawaI wykonaj:
$ Java ForcedumpPo uruchomieniu tego programu rozpocznie się proces w tle; Aby znaleźć identyfikator procesu (PID), otwórz kolejne okno terminalu i użyj:
$ ps aux | Grep wymuszonyNastępnie możesz znaleźć dodatkowe informacje dotyczące wątków, które są uruchomione w procesie za pomocą poniższego polecenia:
$ jstackIdentyfikator procesu wynosi 4457, jak pokazano na obrazie:
$ jstack 4457Wniosek
A Trace Stack to zbiór ramek, który ilustruje określony moment podczas wykonania programu. Zawiera szczegóły dotyczące metody lub funkcji, którą wywołał Twój kod. Dlatego Java Stack Trace to seria ramek, które zaczynają się od bieżącej metody i kończy się na początku programu. W tym artykule pokazaliśmy, jak wdrożyć proces śledzenia stosu w języku programowania Java.