4 votes

Outil Java 1.6 JDK, VisualVM

Quelqu'un a-t-il utilisé le nouvel outil Java 1.6 JDK, VisualVM Comment établir le profil d'une application de production et comment l'application se comporte-t-elle lorsqu'elle est profilée ?

La documentation indique qu'il est conçu pour une utilisation en production et en développement, mais compte tenu de mon expérience antérieure en matière de profilage, avec d'autres outils de profilage, j'hésite.

5voto

Produnis Points 1597

Bien que je n'aie pas personnellement utilisé VisualVM, j'ai vu ceci article de blog juste aujourd'hui qui pourrait avoir des informations utiles pour vous. Il parle du profilage d'une application de production en l'utilisant.

1voto

Tim Howland Points 5705

Je l'ai essayé sur une boîte de développement et j'ai constaté que lorsque je désactivais le profilage, Tomcat s'arrêtait de manière inattendue. Je serais très prudent avant de déployer cette méthode en production - pouvez-vous simuler la charge dans un environnement d'essai à la place ? Ce n'est pas aussi bon que la réalité, mais cela ne vous fera probablement pas virer si ça se passe mal...

1voto

Kevin Peterson Points 4456

J'ai déjà utilisé VisualVM pour profiler quelque chose qui fonctionne localement. Le grand avantage est que je n'ai qu'à le démarrer et qu'il peut se connecter à la JVM en cours d'exécution. Il est plus facile à utiliser que d'autres outils de profilage que j'ai utilisés auparavant et ne semble pas avoir autant de frais généraux.

Je pense que ça fait de l'échantillonnage. L'overhead sur une application intensive en CPU ne semble pas significatif. Je n'ai rien mesuré (je m'intéressais aux performances de mon application, pas à celles de l'outil), mais il n'y avait pas le ralentissement d'un facteur 10 que j'ai l'habitude de voir avec le profilage.

1voto

hennings Points 101

Pour le simple contrôle de votre application, l'exécution de VisualVM à distance ne devrait pas ralentir beaucoup. Si le système n'est pas au bord de l'effondrement, je n'ai toujours pas vu de problèmes. Il s'agit simplement de lire des informations à partir de l'instrumentation intégrée à gros grain de la JVM. Si vous commencez à profiler, cependant, vous aurez les mêmes problèmes qu'avec les autres profileurs. En fait, ils fonctionnent tous de la même manière, en utilisant souvent le support de la JVM.

De nombreuses personnes ont des difficultés à exécuter VisualVM à distance, en raison de problèmes de pare-feu, mais vous pouvez même exécuter Visual VM à distance via ssh avec certaines propriétés du système.

0voto

Michael Points 11

J'ai utilisé VVM (VavaVoom ?) de manière assez extensive, cela fonctionne comme un charme en mode léger, c'est à dire sans profilage, juste en obtenant les données de base de la VM. Mais une fois que vous commencez à profiler et qu'il y a beaucoup de classes, alors il y a un ralentissement considérable. Je ne profilerais pas dans un environnement de production, même si vous avez une carte à 128 cœurs avec 2 tera de mémoire, uniquement parce que le rechargement et la redéfinition des classes sont délicats, les classloaders du serveur sont une autre chose, ils varient également d'une implémentation de serveur à l'autre, interférer avec eux en production n'est pas une très bonne idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X