Я создаю проект, который сравнивает некоторые методы для синглтона с точки зрения скорости.
Что я пытаюсь сделать, так это попросить пользователей ввести, сколько раз они хотят запускать каждый метод, прокручивать их и подсчитывать такты процессора.
Проблема в том, что толщина процессора равна 0. Что мне делать?
Вот мой код:
int numOfCalls;
cout << "How many calls do you want for each?";
cin >> numOfCalls;
clock_t beg, end;
beg = clock();
for (size_t i = 0; i != numOfCalls; i++)
Object* p = GofFixed::instance_GofFixed();
end = clock();
cout << (beg-end) / CLOCKS_PER_SEC << endl;
beg = clock();
for (size_t i = 0; i != numOfCalls; i++)
Boost::instance_Boost();
end = clock();
cout << (beg - end) / CLOCKS_PER_SEC << endl;
clock()
обеспечивает некоторую меру процессорного времени, но, вероятно, не представляет тики процессора 2) типclock_t
иCLOCKS_PER_SECOND
могут быть целочисленными типами, поэтому ваше выражение деления, вероятно, усекается 3) ваш тест довольно упрощен, поэтому он может быть предметом оптимизатору, исключающему многие или все итерации цикла. - person Michael Burr   schedule 28.05.2015for
, так как вы ничего не делаете ни с ним, ни с результатами. - person Alejandro   schedule 28.05.2015main:
. Оптимизированная сборка даже не доходит до циклов for (я немного изменил функции, так как у меня нет доступа кGofFixed::
), но идея та же. - person Alejandro   schedule 28.05.2015