есть приложение, в нём 2 алгоритма, необходимо померять время выполнения каждого из них. Можно посмотреть Environment.TickCount до и после каждого из алгоритмов и сравнить. Но есть одно НО — на компе выполняются ещё какие-нибудь системные процессы и прочее, что влияет на время выполнения этих алгоритмов. Есть ли какая-то другая возможность посчитать, скажем посчитать кол-во регистровых операций и т.д.?
Здравствуйте, Аноним, Вы писали:
А>есть приложение, в нём 2 алгоритма, необходимо померять время выполнения каждого из них. Можно посмотреть Environment.TickCount до и после каждого из алгоритмов и сравнить. Но есть одно НО — на компе выполняются ещё какие-нибудь системные процессы и прочее, что влияет на время выполнения этих алгоритмов. Есть ли какая-то другая возможность посчитать, скажем посчитать кол-во регистровых операций и т.д.?
В Win32 есть функция GetProcessTimes
http://msdn.microsoft.com/en-us/library/ms683223(v=vs.85).aspx
Она вернет тебе время, затраченное процессом в юзермоде и кернелмоде. Разница двух замеров даст то, что ты хочешь.
Вот здесь
http://www.pinvoke.net/default.aspx/kernel32.getprocesstimes
показано, как ее вызвать в дотнете