Le problème initial que j'essaie de résoudre est de voir les temps de tous les sous-appels d'une méthode sur plusieurs threads. Mais j'ai répliqué mon problème avec une application minuscule où j'ai un fil qui exécute une méthode qui attend le plus souvent comme prévu.Yourkit Java Profiler: WALL TIME est probablement mal mesurée pour Object.wait()
Comme vous pouvez le voir, je suis particulièrement intéressé par pool-1-fil-2 méthode d'exécution "com.sum. Proxy10.uploadWaiting $()" donc je sais pour sûr que cette méthode passe la plupart de son "WALL TIME" dans getConnection() qui descend à Object.wait (long) Mais alors je veux voir quel est le pourcentage exact de WALL TIME passé dans getConnection() dans com.sum. $ Proxy10. uploadWaiting(). Je aller à "liste Méthode" -> Mon Method-> Fusionnée Programmes appelés
Comme vous pouvez le voir getConnection() est seulement 1% du temps total de ma méthode. Et j'ai configuré mon échantillonnage pour faire des temps de mur pour toutes les méthodes. Comme vous pouvez le voir sur la capture d'écran, ils sont tous marqués comme [Wall Time]. J'utilise Yourkit 2015 build 15052.
Question: pourquoi getConnection() n'affiche-t-il pas quelque chose comme 90%? Est-il encore en train de calculer seulement le temps CPU et non le temps de mur?