A pilha, também conhecida como tempo de execução ou pilha de chamadas, é uma coleção de quadros de pilha criados por um programa enquanto ele é executado e armazenado em uma estrutura de dados de pilha. Java Virtual Machine (JVM) gerará automaticamente um rastreamento de pilha quando ocorre uma exceção. Portanto, este artigo fornecerá a orientação sobre como você pode usar o rastreamento da pilha do processo de corrida em Java.
O que é rastreamento de pilha em java
Agora, antes de criar um arquivo Java, você precisa ter certeza de instalar o aplicativo Java Development Kit (JDK) em seu sistema operacional Linux; caso contrário, você não poderá executar qualquer programa Java digitando:
$ sudo apt install default-jdkDepois de instalar este aplicativo de pré -requisito, você precisa criar um arquivo Java e uma das maneiras mais fáceis de fazer isso é usando qualquer editor de texto digitando:
$ nano javastacktrace.JavaDepois de criar um arquivo Java, a próxima etapa é escrever e salvar um código que pode ser visto abaixo:
Depois de salvar um arquivo Java, o próximo passo é compilar e executá -lo:
$ javac javastacktrace.JavaVocê pode ver que escrevemos Demofun3 () como a última função ao escrever um código, mas foi executado na segunda linha, pois esse é o ponto de geração de rastreamento que será responsável por executar o dumpstack () que exibirá a saída na tela. As demais funções a partir de Demofun2 () para Demofun () será executado depois na ordem inversa e no principal() A função é exibida na parte inferior, pois é responsável por iniciar o programa e também chamará outras funções.
Você pode dizer que o ponto de execução da pilha começa a partir da primeira linha e a estrutura da pilha começa da segunda linha até a última linha que compõe todo o rastreamento da pilha. Podemos observar que o método que é realizado primeiro se torna o último quadro de pilha do Stack Trace, enquanto o método executado por último se torna o primeiro quadro de pilha da pilha Trace e, como resultado, cada peça de rastreamento de pilha representa um quadro de pilha.
Como empilhar traços de um processo de corrida
O JStack é uma ótima ferramenta para resolver problemas de tempo de execução, especialmente se o seu aplicativo estiver agindo, consumindo mais CPU ou memória do que o esperado, você pode solucionar o aplicativo. Vamos implementá -lo em Java:
classe pública forcedumpDepois disso, você pode criar um arquivo Java usando qualquer editor de texto como fizemos usando um editor de texto Nano, como mostrado abaixo
$ nano forcedump.JavaDepois disso, compile usando:
$ javac forcedump.JavaE executar:
$ java forcedumpDepois de executar este programa, um processo em segundo plano começará; Para encontrar o ID do processo (PID), abra outra janela do terminal e use:
$ ps aux | Grep ForcedumpEm seguida, você pode encontrar informações adicionais sobre tópicos que estão em execução em um processo usando o comando abaixo:
$ jstackO ID do processo é 4457 como mostrado na imagem:
$ jstack 4457Conclusão
Um rastreamento de pilha é uma coleção de quadros de pilha que ilustra um momento específico no tempo durante a execução de um programa. Inclui detalhes sobre um método ou função que seu código chamou. Portanto, o Java Stack Trace é uma série de quadros que começa com o método atual e termina com o início do programa. Neste artigo, mostramos como você pode implementar o processo de rastreamento da pilha na linguagem de programação Java.