[JAVA] J'ai essayé d'utiliser le profileur d'IntelliJ IDEA

Ceci est T.O. de GMO Ad Marketing.

J'ai essayé d'utiliser le profileur avec IntelliJ IDEA Ultimate, je vais donc vous présenter la procédure d'utilisation. Facile à utiliser: sourire:

● Prémisse La version mac d'IntelliJ IDEA Ultimate 2019.3 est utilisée comme environnement de développement. Note 1) Le profileur IntelliJ ne peut être utilisé que dans la version Ultimate. Remarque 2) À ce stade, la fonction de profileur ne peut pas être utilisée pour les serveurs d'applications tels que tomcat.

1. Activer la fonction de profileur

Sélectionnez "Préférence-> Construire, Exécution, Déploiement-> Profileurs-> Java Profiler" dans le menu IntelliJ. Appuyez sur le bouton "+" pour ajouter "CPU Profiler" et "Allocation Profiler". profiler_p1.png

Un bouton est ajouté pour exécuter le profileur. profiler_p2.png

2. Utilisez le profileur

2.1. Profiler du processeur

Sélectionnez "Exécuter'xxxxx 'avec CPU Profiler" à partir des boutons pour exécuter le profileur. Une fois le programme en cours d'exécution, sélectionnez l'onglet Profiler sur l'écran pour afficher la fenêtre Profiler Tools. Les données collectées sont affichées dans trois onglets: graphe de trame, arbre d'appels et liste de méthodes.

2.1.1. Graphique cadre

Affiche les images de la pile appelée avec une largeur proportionnelle au pourcentage de temps processeur passé. Il semble que la partie orange soit consommée en appelant la partie écrite dans le programme, et la partie bleue est consommée par le temps de compilation etc. profiler_cpu_p1.png Si vous souhaitez rechercher où le pourcentage de temps passé est élevé, vous pouvez vous déplacer vers la source du programme correspondant à cette image en affichant le menu avec l'image sélectionnée et en sélectionnant "Aller à la source". profiler_cpu_p1-2.png

2.1.2. Arbre d'appels

Des informations sur la pile d'appels du programme (nom de la méthode, pourcentage du temps CPU total passé, etc.) s'affichent. La flèche à l'extrême gauche est un affichage hiérarchique et vous pouvez la vérifier plus en détail en la sélectionnant. profiler_cpu_p2.png

2.1.3. Liste des méthodes

Les méthodes exécutées sont affichées dans l'ordre décroissant de la consommation de temps CPU cumulée. Vous pouvez vérifier la méthode d'appel en sélectionnant "Back Traces" en bas avec chaque méthode sélectionnée. profiler_cpu_p3.png

2.2. Profil d'allocation

Sélectionnez "Exécuter'xxxxx 'avec Allocation Profiler" à partir des boutons pour exécuter le profileur. Une fois le programme en cours d'exécution, sélectionnez l'onglet Profiler sur l'écran pour afficher la fenêtre Profiler Tools. Les données collectées sont affichées dans trois onglets: graphe de trame, arbre d'appels et liste de méthodes.

2.2.1. Graphique cadre

Les trames de la pile appelée sont affichées avec une largeur proportionnelle au pourcentage de consommation mémoire. Si vous voulez étudier un endroit qui consomme beaucoup de mémoire, vous pouvez vous déplacer vers la source du programme correspondant à la partie du cadre en affichant le menu avec le cadre sélectionné et en sélectionnant "Aller à la source" dans le menu. profiler_allocation_p1.png

2.2.2. Arbre d'appels

Des informations sur la pile d'appels du programme (nom de la méthode, pourcentage de la consommation totale de mémoire, etc.) s'affichent. profiler_allocation_p2.png La flèche à l'extrême gauche est un affichage hiérarchique et vous pouvez la vérifier plus en détail en la sélectionnant. profiler_allocation_p3.png

2.2.3. Liste des méthodes

Les méthodes exécutées sont affichées dans l'ordre décroissant de la quantité de mémoire cumulée. Vous pouvez vérifier la méthode d'appel en sélectionnant "Back Traces" en bas avec chaque méthode sélectionnée. profiler_allocation_p4.png

référence

Par écrit, j'ai évoqué ce qui suit. [Outils profilés - Aide officielle | IntelliJ IDEA] (https://pleiades.io/help/idea/cpu-profiler.html)

Demain, c'est "Comment gérer les valeurs manquantes par apprentissage automatique" par @CodeDiggerM. Veuillez continuer à profiter du Calendrier de l'Avent GMO Ad Marketing 2019!

Recommended Posts

J'ai essayé d'utiliser le profileur d'IntelliJ IDEA
J'ai essayé le nouveau profileur de fonctionnalités d'IntelliJ IDEA 2019.2.
J'ai essayé d'utiliser la fonction Server Push de Servlet 4.0
J'ai essayé d'utiliser Google HttpClient de Java
Le secret du succès d'IntelliJ IDEA
J'ai essayé d'utiliser la fonction de cache d'Application Container Cloud Service
J'ai essayé d'utiliser Gson
J'ai essayé d'utiliser TestNG
J'ai essayé d'utiliser Galasa
[API] J'ai essayé d'utiliser l'API de recherche par code postal
L'idée du tri rapide
L'idée de jQuery
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
J'ai essayé d'utiliser la boîte à outils de migration pour les fichiers binaires d'application
J'ai essayé d'installer le plug-in d'intégration Docker dans IntelliJ
J'ai essayé d'utiliser azure cloud-init
J'ai essayé d'utiliser Apache Wicket
Essayez d'utiliser IntelliJ IDEA car vous ne devez le faire qu'une seule fois
J'ai essayé d'utiliser Java REPL
J'ai essayé le problème FizzBuzz
Notez que j'étais accro aux paramètres du projet Android d'IntelliJ IDEA
J'ai essayé d'utiliser le référentiel GitHub comme serveur de bibliothèque
[Rails] J'ai essayé d'utiliser la méthode button_to pour la première fois
J'ai essayé de résumer les bases de kotlin et java
J'ai essayé JAX-RS et pris note de la procédure
J'ai brièvement résumé la grammaire de base de Ruby
J'ai essayé de construire l'environnement petit à petit en utilisant docker
J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
J'ai essayé d'utiliser la bibliothèque CameraX avec Android Java Fragment
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
J'ai essayé de toucher l'application de gestion d'actifs en utilisant l'émulateur du grand livre distribué Scalar DLT
J'ai essayé d'utiliser anakia + Jing maintenant
J'ai essayé d'utiliser JOOQ avec Gradle
J'ai lu la source de ArrayList que j'ai lu
J'ai lu la source d'Integer
J'ai lu la source de Long
J'ai essayé le framework Java "Quarkus"
[Rails] J'ai essayé de supprimer l'application
J'ai essayé d'utiliser l'API Java8 Stream
J'ai lu la source de Byte
J'ai essayé d'utiliser WebAssembly Stadio (version 2018/4/17)
J'ai lu la source de String
J'ai essayé d'utiliser le mémo Java LocalDate
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
[Metal] J'ai essayé de comprendre le flux jusqu'au rendu avec Metal
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
J'ai essayé le type d'entrée / sortie de Java Lambda ~ Map edition ~
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé d'utiliser l'API Elasticsearch en Java
Essayez d'utiliser || au lieu de l'opérateur ternaire
J'ai essayé de résumer les méthodes utilisées
J'ai essayé d'utiliser Realm avec Swift UI