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

Замер времени вычисления - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с файлами в C, C++ http://www.cyberforum.ru/cpp-beginners/thread696156.html
Есть, файл в котором храниться много чисел типа double Файл был записан следующим образом FILE * yy1; yy1=fopen("вспомогательный_файл_yy1.txt", "w"); for(int j = 0; j < M; j++){ for(int i=0; i<N; i++) { y1=//формула для вычисления y1 fprintf(yy1, "%f " , y1);
C++ Определить количество простых чисел в каждом массиве. Вычислить среднее арифметическое всех элементов массивов Записать каждый второй элемент целочисленного массива Х=(x1,x2,…,xn) подряд в массив Y=(y1,y2,…,yk). Определить количество простых чисел в каждом массиве. Вычислить среднее арифметическое всех элементов массивов X и Y. http://www.cyberforum.ru/cpp-beginners/thread696148.html
Реализовать в виде функции нахождение суммы арифметической прогрессии C++
Найти сумму арифметической прогресии,если известен последний номер ряда.Реализовать в виде функции. за решение буду благодарен,заранее спасибо!или хотя бы натолкните на мысль
Как передать значения с клавиатуры в таблицу C++
Необходимо написать программу, кот хранит array следю чисел: a global array: 9.92, 6.32, 12.63, 5.95, 10.29. Программа должна создать two automatic arrays- units и amounts. amounts = prices * units. Не пойму как вводить units - они ведь с клавиатуры? И необходимо использовать - pointer references to access the array elements. Sample output: Enter units: 4 Enter units: 6
C++ Как заставить компилятор выводить имя файла? http://www.cyberforum.ru/cpp-beginners/thread696120.html
Всем привет! Компилятор GCC. Из Readme: === TDM-GCC Compiler Suite for Windows === --- GCC 4.4/4.5 Series --- *** Standard MinGW 32-bit Edition *** Проблема вот в чем. Создал батник, для экономии действий, следующего содержания: g++ *.cpp
C++ Подсчитать количество чисел, отличающихся от числа 3 подсчитать количество чисел, отличающихся от числа 3 не более чем на 0.5. Как это интерпритировать в код без использования модуля (fabs(A - 3) <= 0.5) Заранее благодарен за помощь!! подробнее

Показать сообщение отдельно
LVV
56 / 56 / 3
Регистрация: 15.02.2010
Сообщений: 239
13.11.2012, 09:59     Замер времени вычисления
Предположим, я хочу определить время "прокрутки" цикла (или другого процесса).
Я знаю два способа.

первый - основан на измерении времени с момента запуска операционной системы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
#include <windows.h>
using namespace std;
 
int main() 
{
 
double start,finish;
start = GetTickCount();//миллисекунд с момента запуска системы
    for (int i=0; i<100000000; i++); //процесс
finish = GetTickCount();
cout << start << endl;
cout << finish - start; // время в милисекундах
 
 
system ("pause");
return 0; 
}
второй - определяет приблизительное процессорное время использованное программой (связано с тактовой частотой и прочее...)
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
#include <iostream> 
#include <ctime>
#include <cmath>
using namespace std;
int main() 
{
 
float t;
clock_t start = 0, finish = 0;
start = clock(); // начинаем замер времени
 
 
for (double i=0; i<100000000; i++); //процесс
 
    
 
finish=clock(); // заканчиваем подсчет времени
    cout << finish - start <<endl;
    
     // подсчет затраченного времени в секундах c точностью до тысячных долей
    t = (float)(finish-start) / CLK_TCK;
cout << endl <<t<<" sekund\n";
system ("pause");
 
return 0; 
}
Второе (процессорное) время сильно отличается от первого (системного) времени...

Казалось бы первое время должно зависеть от других процессов, запущенных в системе (видео, музыка и прочее)... но этого не происходит. И системное время почти всегда одно и то же, независимо от количества запущенных процессов.

В то же время процессорное время даже при прочих одинаковых условиях даёт сильные расхождения...

Почему так?
И как можно замерить время вычислений в программе с наибольшей точностью и реальностью?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru