Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ogcjm
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 34
#1

Время выполнения - C++

17.10.2012, 02:02. Просмотров 376. Ответов 3
Метки нет (Все метки)

Скажите, как я могу сравнить время выполнения 2 функций? Желательно сразу готовый код.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 02:02     Время выполнения
Посмотрите здесь:

C++ Время выполнения процедуры в С++ 3.1
C++ Время выполнения функции
C++ Время выполнения
C++ Время выполнения(сложность)
C++ Время выполнения алгоритма
C++ Измеряем время выполнения
Время выполнения процеса C++
C++ Время выполнения функции
C++ Ошибка во время выполнения
Вычислить время выполнения C++
C++ Время выполнения сортировки
Ошибка во время выполнения C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,508
Записей в блоге: 2
Завершенные тесты: 1
17.10.2012, 02:19     Время выполнения #2
clock_t tstart1 = clock();
Какая-то функция
clock_t tfinish1 = clock();
Время выполнения функции = (tfinish1-tstart1)/CLOCKS_PER_SEC)
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
17.10.2012, 02:24     Время выполнения #3
Зачем юзать clock(), если можно заюзать time() и будет всё норм.
примерно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <ctime>
#include <iostream>
 
using namespace std;
 
int main()
{
int sot,all,all1;
sot=time();
//функция номер 1
all=time()-sot;
sot=time();
//функция номер 2
all1=time()-sot;
cout<<all<<endl<<all1<<endl;
getch();//system("pause");
}

как то так
igorrr37
 Аватар для igorrr37
1600 / 1228 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
17.10.2012, 10:03     Время выполнения #4
если есть поддержка c++11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <chrono>
namespace sc = std::chrono;
 
void F(size_t const boundary)
{
    for(size_t i = 0; i < boundary; ++i)
    ;
}
 
size_t GetMilliseconds(void(*pf)(size_t const), size_t const boundary)
{
    sc::time_point<sc::high_resolution_clock> tpbeg = sc::high_resolution_clock::now();
    pf(boundary);
    sc::time_point<sc::high_resolution_clock> tpend = sc::high_resolution_clock::now();
    return sc::duration_cast<sc::milliseconds>(tpend - tpbeg).count();
}
 
int main()
{
    std::cout << "First: " << GetMilliseconds(F, 1e6) << std::endl;
    std::cout << "Second: " << GetMilliseconds(F, 2e6) << std::endl;
    return 0;
}
Yandex
Объявления
17.10.2012, 10:03     Время выполнения
Ответ Создать тему
Опции темы

Текущее время: 23:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru