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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
htx
-169 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 126
#1

Подсчет времени работы программы - C++

08.03.2014, 13:37. Просмотров 1287. Ответов 6
Метки нет (Все метки)

пожалуйста помогите посчитать время программы с функцией.не знаю почему программа выдает что-то странное,вместо сложения,а время пишет 0.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<windows.h>
using namespace std;
int c(int a,int b);
int main(){
    int start = GetTickCount();
    c(1, 3);
    cout << c<<endl;
    int end = GetTickCount();
    cout << end - start << endl;
    system("pause");
}
int c(int a,int b){
    return a + b;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 13:37     Подсчет времени работы программы
Посмотрите здесь:

Оценка времени работы C++
C++ Подсчет времени выполнения сортировки
Ограничение по времени работы программы C++
Уменьшение времени работы программы C++
UnixPosix, не ври мне! (неправильный подсчет времени вручную) C++
C++ Уменьшать счетчик времени работы
C++ Реализовать подсчет числа пи по представленной формуле с измерением времени работы в секундах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
08.03.2014, 13:42     Подсчет времени работы программы #2
Вот пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
 
int main() {
 
    clock_t time;
    time = clock();
    for (int i = 0; i < 100; i++)
    time = clock() - time;
    std::cout << time << std::endl;
 
    std::cin.get();
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
08.03.2014, 15:43     Подсчет времени работы программы #3
Цитата Сообщение от htx Посмотреть сообщение
пожалуйста помогите посчитать время программы с функцией.не знаю почему программа выдает что-то странное,вместо сложения,а время пишет 0.
- потому что минимальный квант времени в таймере Windows 1 мсек (это самый минимальный квант), в самой справке от мелкософта
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx написано
The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds. The resolution of the GetTickCount function is not affected by adjustments made by the
Вычисление же а + b проходит за сотые или даже тысячные доли милисекунды, засечь это обычным АПИ нельзя
htx
-169 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 126
08.03.2014, 17:10  [ТС]     Подсчет времени работы программы #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<windows.h>
using namespace std;
int c(int a,int b);
int main(){
    int start = GetTickCount();
    c(1, 3);
    cout << c<<endl;
    int end = GetTickCount();
    cout << end - start << endl;
    system("pause");
}
int c(int a,int b){
    return a + b;
}
а когда время работы программы с функцией вычисляем,то считаем время выполнения только в main?или в функции тоже?
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
08.03.2014, 17:10     Подсчет времени работы программы #5
htx, под Windows можно использовать вот это:
Кликните здесь для просмотра всего текста
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
25
26
27
28
29
30
31
32
#include <windows.h>
#include <iostream>
 
double  PCFreq = 0.0;
int64_t CounterStart = 0;
 
void StartCounter()
{
    LARGE_INTEGER li;
    if(!QueryPerformanceFrequency(&li))
        std::cout << "QueryPerformanceFrequency failed!\n";
 
    PCFreq = double(li.QuadPart)/1000.0;
 
    QueryPerformanceCounter(&li);
    CounterStart = li.QuadPart;
}
double GetCounter()
{
    LARGE_INTEGER li;
    QueryPerformanceCounter(&li);
    return double(li.QuadPart-CounterStart)/PCFreq;
}
 
int main()
{
    StartCounter();
    // do some things
    double time = GetCounter();
    std::cout << time;
    return 0;
}
htx
-169 / 2 / 0
Регистрация: 21.09.2013
Сообщений: 126
08.03.2014, 17:24  [ТС]     Подсчет времени работы программы #6
не работает в студии

Добавлено через 8 минут
ладно,все решил.тему можно закрывать....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 17:41     Подсчет времени работы программы
Еще ссылки по теме:

Измерение времени работы кода C++
Подсчет времени выполнения функции C++
C++ Подсчет времени через QueryPerformanceCounter
C++ Подсчет времени работы программы
C++ Организовать контроль времени работы программного обеспечения

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

Или воспользуйтесь поиском по форуму:
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
08.03.2014, 17:41     Подсчет времени работы программы #7
Цитата Сообщение от htx Посмотреть сообщение
не работает в студии
Работает.
Замени int64_t на __int64.
Yandex
Объявления
08.03.2014, 17:41     Подсчет времени работы программы
Ответ Создать тему
Опции темы

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