Время работы DbgPrint

From
Eugene Muzychenko (2:5000/14)
To
All ()
Date
2003-04-18T09:46:18Z
Area
SU.WINDOWS.NT.PROG
* Originally in SU.Windows.NT.Prog
* Crossposted in SU.Win32.Prog

Привет!

Занялся я тут профилированием, и обнаружил любопытную вещь: функция ядра NT DbgPrint, вызванная первый раз в данном вхождении в драйвер (функция DEVICE_IO_CONTROL, другие не смотрел), работает в 2..5 раз дольше, чем последующие. Ставлю в любом месте обработчика IO_CONTROL несколько вызовов DbgPrint, обрамленных чтением/запоминанием TSC, и получаю, что первый вызов выполняется 10000..25000 тактов, а каждый последующий (без подстановок) - 4500..5500. Значения варьируют от интенсивности шевеления мышой, работы винта и т.п., однако быстрее, чем вдвое, первый вызов никогда не отрабатывает. Кто-нибудь может объяснить сей факт?

W2k Prof Free 2195 SP3, SoftICE 2.6.0 (336).

Всего доброго!
Евгений Музыченко

--- GoldED+/W32 1.1.4.7
 * Origin: Fox Tracks, Novosibirsk, Russia (2:5000/14)