QueryPerformanceCounter, возвращающий отрицательное число

Эй, я пытаюсь подсчитать, сколько времени занимает выполнение функции
Я делаю это так:
Timer.cpp

long long int Timer :: clock1()
{
QueryPerformanceCounter((LARGE_INTEGER*)&time1);
return time1;
}
long long int Timer :: clock2()
{
QueryPerformanceCounter((LARGE_INTEGER*)&time2);
return time2;
}

main.cpp

#include "Timer.h"  //To allow the use of the timer class.

Timer query;

void print()
{
query.clock1();
//Loop through the elements in the array.
for(int index = 0; index < num_elements; index++)
{
//Print out the array index and the arrays elements.
cout <<"Index: " << index << "\tElement: " << m_array[index]<<endl;
}
//Prints out the number of elements and the size of the array.
cout<< "\nNumber of elements: " << num_elements;
cout<< "\nSize of the array: " << size << "\n";
query.clock2();
cout << "\nTime Taken : " << query.time1 - query.time2;
}

Может кто-нибудь сказать мне, если я делаю это правильно?

-1

Решение

Вы вычитаете время окончания из времени начала.

cout << "\nTime Taken : " << query.time1 - query.time2;

должно быть

cout << "\nTime Taken : " << query.time2 - query.time1
1

Другие решения

Допустим, я начинаю что-то через 10 секунд, а заканчивается через 30 секунд. Как долго это займет? 20 секунд Чтобы получить это, мы бы сделали 30 - 10; то есть во второй раз вычтите первый раз.

Так что, возможно, вы хотите:

cout << "\nTime Taken : " << (query.time2 - query.time1);
1

По вопросам рекламы [email protected]