время измерения профилируемой функции - PullRequest
0 голосов
/ 01 января 2011


Я пытаюсь профилировать функцию другим методом, поэтому, чтобы измерить ее время, я делаю что-то вроде этого:

double diffTime = GetCurrentTime() - m_lastTime;
SuspendOtherProcessThreads();
double runningTime += diffTime;

... Do profiling stuff ... 

ResumeOtherProcessThreads();
m_lastTime = GetCurrentTime();  

... Let profiled process run ....

Это то, что я делаю каждый примери я считаю, что время, за которое я сделал выборку, было «runningTime».Но по какой-то причине я понимаю, что «runningTime» намного меньше, чем фактическое время выполнения.
Этот код выполняется десятки тысяч раз в секунду.

Кто-нибудь знает, что с ним не так?это как-то связано с темами Suspend / Resume?
спасибо:)

1 Ответ

0 голосов
/ 01 января 2011

Если ваш процесс заблокирован другим процессом, ваше время будет неправильным.

Почему вы не используете инструмент (например, cachegrind для профилирования?

...