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

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

Войти
Регистрация
Восстановить пароль
 
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
#1

Измерение времени работы кода - C++

06.09.2014, 12:47. Просмотров 1040. Ответов 17
Метки нет (Все метки)

Нужно подсчитать время выполнения кода. данный отрывок сортирует массив. если размер массива маленький, то выводит 0. При большом размере выводит значение. Собственно не пойму как решить проблему при маленьких размерах массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    clock_t begin, end;
    double time_spent;
    begin = clock();
    int tmp;
    for (int i = 1; i < aSize; i++)
    {
        tmp=arr[i];
        for (int j=i-1;j>=0;j--)
        {
            if(arr[j]>tmp)
            {
                arr[j+1]=arr[j];
                arr[j]=tmp;
            }
            else break;
        }
    }
    end = clock();
    time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
 
    cout << "Work time:" << time_spent<<endl;;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2014, 12:47     Измерение времени работы кода
Посмотрите здесь:

Измерение времени - C++
DWORD dwStart, dwFinish, dwDif; dwStart=GetTickCount(); MatrixSum(SizeOfMatrix,Matrix,Matrix2,MatrixRes); dwFinish=GetTickCount(); ...

Измерение времени - C++
while (Message.message!=WM_QUIT) { if(PeekMessage(&amp;Message, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&amp;Message); ...

Измерение времени компиляции - C++
как узнать время компиляции исходного текста и размер памяти, которую програма использует

Измерение времени переключения контекста - C++
Кто может подсказать, какими способами это возможно реализовать в Windows? Есть ли способы, не прибегая к ассемблеру? Есть мысли на...

Измерение времени выполнения потока - C++
#include &quot;stdafx.h&quot; #include &lt;clocale&gt; #include &lt;math.h&gt; #include &lt;windows.h&gt; int l, m, n, geo, sum; DWORD WINAPI proizv...

Измерение времени исполнения алгоритма через Clock() периодически равно 0 - C++
Здравствуйте! Я в отчаянии :( Была программа на C# и появилась необходимость перевести ее на С++. Но как переписать ...

Измерение скорости работы блока программы - C++
Как можно протестировать на скорость работы отдельный блок программы? Пример: замер скорости class_one.function1(). int main() {...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.09.2014, 12:52     Измерение времени работы кода #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Использовать более точные средства.
Под винду например: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Из C++11 я думаю можно функции std::chrono использовать.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
06.09.2014, 13:08     Измерение времени работы кода #3
Цитата Сообщение от Yamko Посмотреть сообщение
если размер массива маленький, то выводит 0
Можно для маленьких массивов запускать сортировку N раз, полученное время делить на N.
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 426
06.09.2014, 13:23     Измерение времени работы кода #4
На C++11:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <chrono>
 
int main() {
  auto t1 = std::chrono::high_resolution_clock::now();
  int s=0;
  for (int i=0; i<10; ++i)
    s+=i;
  auto t2 = std::chrono::high_resolution_clock::now();
  long dt = ((std::chrono::nanoseconds)(t2-t1)).count();
  std::cout << dt << std::endl;
  return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
06.09.2014, 13:25     Измерение времени работы кода #5
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.09.2014, 18:49     Измерение времени работы кода #6
AlexVRud, у вас этот код что выводит?
NeonLost
Пес войны
74 / 85 / 3
Регистрация: 23.02.2012
Сообщений: 653
06.09.2014, 19:03     Измерение времени работы кода #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<windows.h>
 
using namespace std;
 
int main()
{
    int start=GetTickCount();
    for(int i=0;i<1000000;i++)
    {
        for(int j=0;j<1024;j++){}
    }
    int end=GetTickCount();
    cout<<end-start<<endl;
    getchar();
    return 0;
}
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.09.2014, 19:06     Измерение времени работы кода #8
NeonLost, если такой цикл замерить, то что выведет?
C++
1
2
3
  int s=0;
  for (int i=0; i<10; ++i)
    s+=i;
Renji
1823 / 1241 / 288
Регистрация: 05.06.2014
Сообщений: 3,550
06.09.2014, 19:28     Измерение времени работы кода #9
Нужно подсчитать время выполнения кода. данный отрывок сортирует массив.
rdtsc - меряет с точностью до такта. Правда, надо уточнить как до него достучаться в конкретном компиляторе.
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 426
06.09.2014, 20:42     Измерение времени работы кода #10
Цитата Сообщение от alsav22 Посмотреть сообщение
у вас этот код что выводит?
от 200 до 800
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.09.2014, 22:43     Измерение времени работы кода #11
Цитата Сообщение от AlexVRud Посмотреть сообщение
от 200 до 800
Странно... У меня - 0.
Миниатюры
Измерение времени работы кода  
Mak20
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 79
07.09.2014, 08:24     Измерение времени работы кода #12
alsav22,

Не по теме:

какой версией mvs пользуетесь ? у меня без

C++
1
system ("pause");
после открытия консоли тут же консоль закрывается.

alsav22
07.09.2014, 14:18
  #13

Не по теме:

Цитата Сообщение от Mak20 Посмотреть сообщение
какой версией mvs пользуетесь ?
13-й.
Цитата Сообщение от Mak20 Посмотреть сообщение
после открытия консоли тут же закрывается.
Ctrl + F5.

Mak20
2 / 2 / 0
Регистрация: 06.09.2014
Сообщений: 79
08.09.2014, 06:09     Измерение времени работы кода #14
alsav22,
Цитата Сообщение от alsav22 Посмотреть сообщение
Ctrl + F5

Не по теме:

я в 10-той, ctrl + f5 не помогает, ну и ладно)

alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 06:34     Измерение времени работы кода #15
Цитата Сообщение от Mak20 Посмотреть сообщение
я в 10-той, ctrl + f5 не помогает
Я и в 10-й. Чтобы работало, в свойствах проекта - Компоновщик - Система - Подсистема, нужно выбрать: Консоль.
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 426
08.09.2014, 09:26     Измерение времени работы кода #16
Цитата Сообщение от alsav22 Посмотреть сообщение
Странно... У меня - 0.
только сейчас добрался на работе до виндовой машины. И точно, тут пока нет столь быстрых таймеров.
Так что ждемс, когда появится. С другой стороны, скорость такого код бессмысленно замерять, так как время его исполнения может отличаться в разы при нескольких подряд запусках.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.09.2014, 17:04     Измерение времени работы кода #17
Цитата Сообщение от AlexVRud Посмотреть сообщение
только сейчас добрался на работе до виндовой машины.
А до этого на чём пробовали?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2014, 19:37     Измерение времени работы кода
Еще ссылки по теме:

Бинарная сорировка и измерение работы функции - C++
Запрограммировать и протестировать следующие алгоритмы: Алгоритм бинарных вставок и алгоритм Шелла; исходники нашел.только не пойму...

Определение времени выполнения кода - C++
Нужно определить сколько выполняется тот или иной цикл, подскажите поз, как это сделать

Оценка времени работы - C++
Можете оценить время работы алгоритма? http://acm.timus.ru/problem.aspx?space=1&amp;num=1100 - это задача, на которую он проходит По моему...

Замер времени выполнения программного кода - C++
Как замерить время выполнения этого программного кода (в секундах) и вывести его на экран? Как провести оптимизацию, чтобы время...

Сокращение кода и времени проверки (задача) - C++
Однажды Вася очень долго просидел на остановке, прежде чем дождался своего автобуса. Чтобы как-то занять время, он решил записывать на...


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

Или воспользуйтесь поиском по форуму:
AlexVRud
442 / 152 / 38
Регистрация: 04.07.2014
Сообщений: 426
08.09.2014, 19:37     Измерение времени работы кода #18
Цитата Сообщение от alsav22 Посмотреть сообщение
А до этого на чём пробовали?
Ubuntu 14.04
Yandex
Объявления
08.09.2014, 19:37     Измерение времени работы кода
Ответ Создать тему
Опции темы

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