2010-08-31 6 views
1

Je vois qu'il y a un tas de questions de "recommandation de profileur java" qui sont déjà traitées ici. Mon cas est légèrement spécifique, cependant.profileur java haute performance

J'ai besoin de profiler un système de production qui compte des milliers d'utilisateurs actifs. J'ai donc besoin d'un profileur léger qui ne ralentira pas le système jusqu'à l'arrêt complet. Je suis en cours d'exécution sur Tomcat 6.0.29 sur JDK 1.6.0_20 sous Linux.

Ma préférence serait un profileur open source libre. Mais s'il y en a un commercial qui est clairement le meilleur choix, alors ce serait bien aussi.

+1

Quel type de profilage recherchez-vous? Plus l'information est détaillée, plus le profileur est invasif. – skaffman

+0

J'ai juste besoin d'un échantillonnage CPU. –

Répondre

0

Sans vous lancer dans une attaque de profileur (vous pouvez google pour cela), l'échantillonnage de processeurs est généralement reconnu comme l'un des procédés de profilage les moins computationnistes. Ceci est essentiel si vous profilez une application en production.

Lire la suite SO message: - Which Java Profiling tool do you use and which tool you think is the best?

Vous pouvez même just use the JDK and the hprof tools, bien que même le profileur de base sera probablement mieux.

L'astuce consistera à limiter la quantité de classes à profiler, comme le dit skafman.

+0

Je vais essayer Yourkit. Leurs builds "early access" sont libres d'utilisation, et ils semblent avoir un support facile pour l'utilisation d'une interface utilisateur de profilage Windows se connectant à une JVM sur un serveur Linux. –

3

Jetez un oeil à jvisualvm dans le JDK.

Il peut se connecter à un processus en cours à la fois localement et également sur le réseau (mais avec des fonctionnalités réduites) et vous permet de faire du profilage à la fois pour le processeur et la mémoire. Jetez un coup d'œil à http://blip.tv/file/1582849

+0

Cela semble intéressant, mais j'ai besoin de profil sur le réseau, et il semble que jvisualvm ne peut pas faire cela. –

+0

Non, mais pouvez-vous exécuter un serveur X localement (par exemple, knoppix dans un vmware), vous pouvez exécuter visualvm à distance avec un affichage local. –

+0

Vous n'avez même pas besoin de faire cela. NetBeans a bien intégré VisualVM, et tout ce dont vous avez besoin est le pack Netbeans Remote Profiling installé sur la machine que vous voulez profiler. NB a un assistant pour vous dire comment démarrer votre application à distance (ajoutez en gros un argument '-agentpath: file'). –

1

Je préfère Java Flight Recorder. Il ne provoque presque aucune surcharge de performance et a une interface graphique agréable. Ajouter les paramètres JVM

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder 
-XX:StartFlightRecording=name=test,filename=test.jfr,dumponexit=true 

et d'ouvrir l'enregistrement avec JMC.

Questions connexes