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.

0voto

Matt N Points 578

Il est possible de se connecter à distance à votre serveur depuis un autre ordinateur en utilisant VisualVM. Il suffit de faire un clic droit sur le nœud "Remote" et de dire "Add Remote Host".

Cela permettrait au moins d'éviter que la surcharge de VisualVM (s'il y en a une) n'ait un impact sur les performances pendant son fonctionnement.

Cela n'éliminera peut-être pas tous les problèmes de performance, en particulier dans les environnements de production, mais cela aidera un peu.

0voto

gibbss Points 1268

J'ai utilisé le profileur Net Beans qui utilise les mêmes fondements que Visual VM.

Je travaillais avec une ancienne version de Weblogic, ce qui impliquait l'utilisation de la JVM 1.5, et je ne pouvais donc pas faire d'attachement dynamique. L'application que je profilais comptait plusieurs milliers de classes et mon poste de travail était pratiquement inutilisable pendant que le profileur les instrumentait toutes. Une fois l'instrumentation terminée, le système était lent mais pas complètement inutilisable. Le degré de ralentissement dépend vraiment de ce que vous devez capturer. Les mesures de base du CPU sont assez légères. Le profilage de l'allocation de mémoire ralentit beaucoup les choses.

Je ne l'utiliserais pas sur un système de production. Outre le potentiel de ralentissement, j'ai fini par manquer d'espace PermGen parce que le profileur réinstruit et recharge les classes lorsque vous modifiez les paramètres. (Cela a peut-être été corrigé dans l'agent 1.6, je ne sais pas).

0voto

djangofan Points 6046

J'ai beaucoup utilisé VisualVM avant qu'il ne soit inclus dans le JDK. Il a un impact négligeable sur les performances du système. Je n'ai jamais remarqué qu'il causait un problème de performance sur le système, mais là encore, notre serveur Java avait suffisamment de marge de manœuvre à l'époque pour supporter une petite charge supplémentaire. Si votre serveur fonctionne à un niveau qui est complètement dépassé et ne peut pas gérer VisualVM, alors je dirais qu'il est plus probable que vous deviez acheter un autre serveur. Tout serveur de production devrait avoir une certaine marge de mémoire, sinon ce que vous avez est un désastre qui ne demande qu'à se produire.

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