La pile, également connue sous le nom de pile d'exécution ou d'appel, est une collection de cadres de pile créés par un programme pendant qu'il s'exécute et stocké dans une structure de données de pile. Java Virtual Machine (JVM) générera automatiquement une trace de pile lorsqu'une exception se produit. Ainsi, cet article vous fournira la directive sur la façon dont vous pouvez utiliser la trace de pile du processus en cours d'exécution en Java.
Qu'est-ce que le traçage de pile dans Java
Maintenant, avant de créer un fichier Java, vous devez vous assurer que vous avez installé l'application Java Development Kit (JDK) dans votre système d'exploitation Linux, sinon, vous ne pourrez pas exécuter un programme Java en tapant:
$ sudo apt installer par défaut-jdkAprès avoir installé cette application préalable, vous devez créer un fichier Java et l'un des moyens les plus simples de procéder est d'utiliser n'importe quel éditeur de texte en tapant:
$ nano javastacktrace.JavaAprès avoir créé un fichier Java, l'étape suivante consiste à écrire et à enregistrer un code qui peut être vu ci-dessous:
Après avoir enregistré un fichier Java, l'étape suivante consiste à le compiler et à l'exécuter:
$ javac javastacktrace.JavaVous pouvez voir que nous avons écrit Demofun3 () comme la dernière fonction lors de l'écriture d'un code, mais il a été exécuté dans la deuxième ligne car c'est le point de génération de trace qui sera responsable d'exécuter le Dumpstack () qui affichera la sortie à l'écran. Les fonctions restantes à partir de Demofun2 () pour Demofun () s'exécutera après dans l'ordre inverse et le principal() La fonction est affichée en bas car elle est responsable du démarrage du programme et appellera également d'autres fonctions également.
Vous pouvez dire que le point d'exécution de la pile commence à partir de la première ligne et que le cadre de pile commence de la deuxième ligne à la dernière ligne qui constitue la trace de pile entière. Nous pouvons observer que la méthode qui est effectuée devient d'abord la dernière trame de pile de la trace de pile, tandis que la méthode exécutée devient dernier le premier cadre de pile de la trace de pile et, par conséquent, chaque pièce de trace de pile représente un cadre de pile.
Comment empiler la trace d'un processus en cours
JSTACK est un excellent outil pour résoudre les problèmes d'exécution, surtout si votre application agit, consommant plus de CPU ou de mémoire que prévu, vous pouvez résoudre l'application. Implémentons-le en Java:
classe publique ForceDumpAprès cela, vous pouvez créer un fichier Java en utilisant n'importe quel éditeur de texte comme nous l'avons fait en utilisant un éditeur de texte nano comme indiqué ci-dessous
$ Nano ForceDump.JavaAprès cela, le compilez en utilisant:
$ Javac ForceDump.JavaEt exécuter:
$ Java ForceDumpAprès avoir exécuté ce programme, un processus d'arrière-plan commencera; Pour trouver l'ID de processus (PID), ouvrez une autre fenêtre de terminal et utilisez:
$ ps Aux | Grep ForceDumpEnsuite, vous pouvez trouver des informations supplémentaires concernant les threads qui s'exécutent dans un processus en utilisant la commande ci-dessous:
$ jstackL'ID de processus est 4457 comme indiqué dans l'image:
$ jstack 4457Conclusion
Une trace de pile est une collection de cadres de pile qui illustre un moment spécifique dans le temps lors de l'exécution d'un programme. Il comprend des détails sur une méthode ou une fonction que votre code a invoqué. Par conséquent, la trace Java Stack est une série de trames qui commencent par la méthode actuelle et se termine par le début du programme. Dans cet article, nous vous avons montré comment vous pouvez implémenter le processus de traçage de la pile dans le langage de programmation Java.