Si quelque chose est de faire un thread unique programme de prendre, disons, 10 fois plus longtemps qu'il le devrait, vous pourriez exécuter un profiler sur elle. Vous pourriez tout aussi bien arrêter avec un bouton "pause", et vous verrez exactement ce qu'il fait.
Même si c'est seulement 10% plus lent que ce qu'elle devrait être, si vous arrêter plusieurs fois, avant longtemps, vous allez le voir à plusieurs reprises de faire la chose inutile. Habituellement, le problème est un appel de fonction quelque part dans le milieu de la pile qui n'est pas vraiment nécessaire. Cela ne permet pas de mesurer l'ampleur du problème, mais c'est sûr qu'il ne le trouver.
Edit: Les objections pour la plupart supposent que vous prenez seulement à 1 échantillon. Si vous êtes sérieux, de prendre 10. Aucune ligne de code à l'origine de certains pourcentage de pertes, à l'instar de 40%, apparaîtra sur la pile sur la fraction des échantillons, en moyenne. Les goulots d'étranglement (en mono-thread code) ne peut pas le cacher.
EDIT: Pour montrer ce que je veux dire, de nombreuses objections sont de la forme "il n'y a pas assez d'échantillons, de sorte que ce que vous voyez peut être fallacieuse" - vague idée sur le hasard. Mais si quelque chose de tout reconnaissable description, pas seulement d'être dans une routine ou l'habitude d'être actif, est en effet de 30% du temps, alors la probabilité de le voir sur tout l'échantillon est de 30%.
Ensuite, supposons que seulement 10 échantillons sont prélevés. Le nombre de fois que le problème sera vu dans 10 échantillons suit une distribution binomiale, et la probabilité de le voir 0 fois est .028. La probabilité de le voir 1 temps est .121. Pour les 2 fois, la probabilité est .233, et pour 3 fois c'est .267, après quoi il tombe. Puisque la probabilité de le voir moins deux fois est .028 + .121 = .139, cela signifie que la probabilité de le voir deux fois ou plus est de 1 - .139 = .861. La règle générale est que si vous voyez quelque chose que vous pourriez corriger sur deux échantillons ou plus, il vaut la peine de fixation.
Dans ce cas, les chances de le voir dans 10 échantillons est de 86%. Si vous êtes dans les 14% qui ne le voient pas, il suffit de prendre plusieurs échantillons jusqu'à ce que vous faites. (Si le nombre d'échantillons est porté à 20, la chance de le voir deux fois ou plus augmente de plus de 99%.) Donc, il n'a pas été mesurée avec précision, mais il a justement été trouvé, et il est important de comprendre qu'il pourrait facilement être quelque chose d'un profileur ne pouvait pas trouver, comme quelque chose impliquant l'état des données, pas le compteur de programme.