A low-overhead performance measurement of an application executing in a
data processing system is provided in order to generate per-thread
performance information in a multithreaded environment. While a first set
of events is being monitored for a particular thread as a first metric,
events that may indirectly cause inaccuracies in the first metric, such as
thread switches, are also monitored as a second metric. The presence of a
positive value for the second metric is then used to determine that the
first metric is inaccurate or unreliable, after which the first metric may
be discarded; otherwise, the first metric is considered accurate. For
example, the first metric may then be considered a thread-relative metric
as it has been observed during a time period in which no thread switch
events or interrupt events would have caused the first metric to become
inaccurate during the execution of a particular thread.
Une mesure d'exécution de bas-frais généraux d'une application s'exécutant dans un système de traitement de données est fournie afin de se produire par-filètent l'information d'exécution dans a multithreaded l'environnement. Tandis qu'un premier ensemble d'événements est surveillé pour un fil particulier en tant que premier métrique, des événements qui peuvent indirectement causer des inexactitudes dans le premier métrique, tel que des commutateurs de fil, sont également surveillés en tant que deuxième métrique. La présence d'une valeur positive pour le deuxième métrique est alors employée pour déterminer que le premier métrique est imprécis ou incertain, après quoi le premier métrique peut être jeté ; autrement, le premier métrique est considéré précis. Par exemple, le premier métrique peut alors être considéré un métrique fileter-relatif car on l'a observé pendant une période de temps l'où événement de commutateur de fil ou événements d'interruption n'aurait pas fait devenir le premier métrique imprécis pendant l'exécution d'un fil particulier.