Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Time profiling


Автор: Kofgarter 10.2.2011, 20:24
Добрый вечер.
Хочу подсчитать сколько нужно времени для работы мат алгоритма.
Программа очень простая: 1. генерит данные в вектор 2. в цикле подает данные в алгоритм 3. получает данные.
Код:
Код

int main()
{
clock_t start, end, duration=0;
int NUMBER = 10000; // amount of generated values
for (int i=0;i<NUMBER;i++)
         {
            start = clock();
            algorithm.push(rawVal[i]);
            filteredVal.push_back(algorithm.pop());  // pop last filtered value
            end = clock();
            duration+=end-start;
         }
printf("Average time taken per each filtered step: %1.2es\n", (double)(duration)/CLOCKS_PER_SEC/NUMBER);
}


Вопрос, правильно ли я расчитываю время? Нужно расчетать сколько работат только мат алгоритм.

Автор: alexvs11 10.2.2011, 20:54
замеряйте время до и после цикла, а потом делите на колво итераций

Автор: Kofgarter 10.2.2011, 21:12
Т.е. мютексы, или еще какие-нибудь прибамбасы не нужно делать для чистоты эксперимента?

Автор: svlary 11.2.2011, 06:46
Цитата(Kofgarter @  10.2.2011,  20:24 Найти цитируемый пост)
сколько нужно времени для работы

Если нужно совсем просто и быстро, то используйте системное средство таймирования :

Код

time <Проверяемая программа> <Параметры проверяемой программы>


смотри  man 1 time

Автор: alexvs11 11.2.2011, 15:55
Цитата(Kofgarter @ 10.2.2011,  21:12)
Т.е. мютексы, или еще какие-нибудь прибамбасы не нужно делать для чистоты эксперимента?

а для чего, я честно не представляю

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)