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

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

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

C++ Время выполнения процедуры в С++ 3.1
C++ Время выполнения функции
C++ Время выполнения
C++ Время выполнения(сложность)
C++ Измеряем время выполнения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 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
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 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     Время выполнения
Ответ Создать тему
Опции темы

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