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

Измерить время выполнения (сложение двух чисел) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
|| Flashka ||
 Аватар для || Flashka ||
2 / 2 / 0
Регистрация: 03.03.2010
Сообщений: 94
29.04.2012, 15:48     Измерить время выполнения (сложение двух чисел) #1
Вот у меня есть код, который выполняет сложение двух чисел.. Помогите вставить сюда GetTickCount и QueryPerformanceCounter.... Только нужно чтобы время вывелось у обеих функций в мкс!!
Помогите пожалуйста!!!=)

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
33
34
// 11.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
 
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_CTYPE,"Russian");
    float Q;
    float Q1;
    float rez_sum1;
 
    cout <<"\nПервое число с плавающей точкой: ";
    cin.clear();
    cin  >>  Q;
 
    cout <<"\nВторое число с плавающей точкой: ";
    cin  >> Q1;
 
    rez_sum1 = Q + Q1;
 
    cout << "\n" << rez_sum1 << "- Результат сложения\n";
    getchar();
    getchar();
    getchar();
}
Добавлено через 1 час 41 минуту
Ребят...Помогите пожалуйста! =(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 15:48     Измерить время выполнения (сложение двух чисел)
Посмотрите здесь:

C++ Сложение двух чисел
сложение двух чисел в С C++
Как измерить время выполнения отдельного участка кода? C++
C++ Сложение двух больших чисел
Сложение двух длинных чисел. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
29.04.2012, 15:57     Измерить время выполнения (сложение двух чисел) #2
В общем типа такого:
C++
1
2
3
4
5
6
7
8
9
LARGE_INTEGER time0;
LARGE_INTEGER time1;
LARGE_INTEGER freq;
Sleep(1);
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&time0);
...
QueryPerformanceCounter(&time1);
cout << (float)(time1.QuadPart - time0.QuadPart) / freq.QuadPart;
Но надо бы в цикле много раз сделать и вычислить среднее.
|| Flashka ||
 Аватар для || Flashka ||
2 / 2 / 0
Регистрация: 03.03.2010
Сообщений: 94
29.04.2012, 16:04  [ТС]     Измерить время выполнения (сложение двух чисел) #3
Somebody, я чайник в этих вопросах... Можно поподробнее? =)
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
29.04.2012, 16:26     Измерить время выполнения (сложение двух чисел) #4
Вообще сложение двух чисел - не то, время выполнения чего стоит измерять, хотя бы потому, смысла в полученном результате будет немного. А так даже если будет что-то посложнее, на время влияет много разных факторов, так что... Что поподробнее? Просто надо много раз измерить время и посчитать среднее. Вот например:
Поиск в заданной строке последнего вхождения заданного символа
|| Flashka ||
 Аватар для || Flashka ||
2 / 2 / 0
Регистрация: 03.03.2010
Сообщений: 94
29.04.2012, 16:30  [ТС]     Измерить время выполнения (сложение двух чисел) #5
И еще... у меня таких мат-х операций 14.... в кейсах.. мне в каждую операцию добавлять обе эти функции?

Добавлено через 3 минуты
А как насчет вот этой функции GetTickCount?
Она изначально же не мкс измеряет... Как мне сделать, чтоб она в мкс выдала результат?
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
29.04.2012, 16:47     Измерить время выполнения (сложение двух чисел) #6
Цитата Сообщение от || Flashka || Посмотреть сообщение
А как насчет вот этой функции GetTickCount?
Она изначально же не мкс измеряет... Как мне сделать, чтоб она в мкс выдала результат?
Умножить результат функции GetTickCount() на 1000.
|| Flashka ||
 Аватар для || Flashka ||
2 / 2 / 0
Регистрация: 03.03.2010
Сообщений: 94
30.04.2012, 11:14  [ТС]     Измерить время выполнения (сложение двух чисел) #7
Не... Так не получается! Ведь при измерении в миллисекундах будет 0... Поэтому на что не умножай, все равно 0.... Как-то по-другому надо....=(
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
30.04.2012, 15:02     Измерить время выполнения (сложение двух чисел) #8
По-другому в микросекундах с помощью GetTickCount() не измерить.
Как тебе уже говорили, задай N-ое количество итераций, так будет точнее, общее время выполнения можно будет поделить на N чтобы получить время одной итерации в микросекундах.
|| Flashka ||
 Аватар для || Flashka ||
2 / 2 / 0
Регистрация: 03.03.2010
Сообщений: 94
06.05.2012, 16:38  [ТС]     Измерить время выполнения (сложение двух чисел) #9
Так а какая разница один мне раз выведется вр выполнения ноль или N кол раз....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2012, 22:27     Измерить время выполнения (сложение двух чисел)
Еще ссылки по теме:

C++ Сложение двух чисел
C++ Сложение двух чисел в С++
Сложение двух чисел на TurboC++ C++

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
08.05.2012, 22:27     Измерить время выполнения (сложение двух чисел) #10
Цитата Сообщение от || Flashka || Посмотреть сообщение
Так а какая разница один мне раз выведется вр выполнения ноль или N кол раз....
Грубо говоря, если время выполнения операции сложения равно 10 микросекундам, то замерив одну операцию с помощью GetTickCount() ты получишь 0 (ms).
Если ты замеришь миллион операций сложения этой же функцией то получишь 10 000 миллисекунд. 10 000 / 1000 (кол-во микросекунд в миллисекунде) = 10 микросекунд.
Понял!?
Yandex
Объявления
08.05.2012, 22:27     Измерить время выполнения (сложение двух чисел)
Ответ Создать тему
Опции темы

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