2010-01-14 6 views
0

Je suis en train d'établir un profil de mon code de calcul intensif, et j'ai été surpris de voir que la fonction RtlpNtMakeTemporaryKey prend énormément de temps. Son module est ntdll et le fichier source est Unknown. Est-ce un appel qui attend que ma fonction lente se termine ou est-ce quelque chose que je peux optimiser?RtlpNtMakeTemporaryKey - VerySleepy indique que cela prend beaucoup de temps

+0

Quelle est la pile d'appel au-dessus de cette fonction? Comme Terry le mentionne, ce n'est probablement pas * réellement * cette fonction. –

Répondre

4

Etes-vous sûr d'avoir des symboles pour ntdll? Il est possible que non, et RtlpNtMakeTemporaryKey est juste le nom de symbole exporté de placard que votre débogueur peut voir à la fonction réelle ou aux fonctions qui prennent beaucoup de temps. Mais oui, vous devriez vous concentrer sur votre code et qui/pourquoi vous appelez tellement ntdll.

1

Cela ressemble à une fonction interne dans Windows car il est dans ntdll.dll. Vous devriez regarder la pile d'appel qui atteint cette fonction pour savoir pourquoi elle est invoquée si souvent.

+0

++ Oui, et un moyen facile de le faire est de faire une pause au hasard, comme dans: http://stackoverflow.com/questions/406760/whats-your-most-controversial-programming-opinion/1562802#1562802 –

Questions connexes