2010-01-14 24 views
0

我正在分析一些我的計算密集型代碼,並且很驚訝地看到函數RtlpNtMakeTemporaryKey佔用了大量時間。它的模塊是ntdll,源文件是Unknown。這是一個正在等待我的慢函數終止的調用,還是我可以優化的東西?RtlpNtMakeTemporaryKey - VerySleepy表示這需要很長時間

+0

這個函數上面的調用堆棧是什麼?正如Terry所說,這可能不是*實際上*這個功能。 – 2010-01-15 03:01:00

回答

4

你確定你有ntdll的符號嗎?有可能你沒有,而RtlpNtMakeTemporaryKey只是你的調試器可以看到真正的函數或佔用這麼多時間的函數的最近的導出符號名稱。

但是,是的,你應該關注你的代碼以及誰/爲什麼你打入ntdll這麼多。

1

這聽起來像是Windows中的一個內部函數,因爲它在ntdll.dll中。你應該看看達到這個函數的調用堆棧來找出爲什麼它經常被調用。

+0

++是的,一個簡單的方法是隨機暫停它,如下所示:http://stackoverflow.com/questions/406760/whats-your-most-controversial-programming-opinion/1562802#1562802 – 2010-01-14 22:53:10