Question

Je viens d'installer Java 1.6_07 pour pouvoir essayer le profilage avec VisualVM.Il me dit que mon application passe 60 % de son temps sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run

Comment puis-je savoir ce qu'il faisait pendant cette période ?Combien de temps a-t-il attendu que quelque chose l'appelle, ou fait autre chose ?Comment l'appelait-il et comment l'appelait-il ?Je n'arrive tout simplement pas à trouver un moyen d'accéder à des niveaux plus profonds comme c'est le cas dans Quantify ou dans le profileur Perl.

Était-ce utile?

La solution

Je n'ai pas d'expérience avec VisualVM - mais le profileur de JRockit fait fournir ces informations ;vous pouvez envisager de l'utiliser à la place.

Mise à jour: une question avec une liste de profileurs Java peut être trouvée ici, pour les utilisateurs disposant d'une réputation suffisante pour afficher les questions supprimées.

Autres conseils

Votre application utilise-t-elle RMI sur TCP ?Sinon, est-il possible qu'il s'agisse d'un heisenbug, provoqué par l'instrumentation de la VM ?Je suppose que VisualVM doit utiliser les appels RMI pour comprendre ce qui se passe dans la JVM....

J'ai commencé à utiliser le nouveau VisualVM 1.2.Il permet de profiler le processeur et d'explorer à l'aide d'un graphique d'appel.Essaye le.

En utilisant 1.3.2, je vois également qu'il s'agit du blocage signalé auquel je suis confronté.Dans la version 1.3.2, si vous effectuez un vidage de thread et recherchez cet appel, vous pouvez voir où il atterrit dans la chaîne d'appels pour ce thread.Je ne sais pas si Yuval F faisait référence à ceci ou à autre chose.Recherchez la chaîne d'appels pour voir ce qu'elle appelle et ainsi de suite, regardez en bas pour voir par quoi elle est appelée et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top