Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как замерить время выполнения алгоритма? 
:(
    Опции темы
dima_mak
Дата 2.3.2005, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



сабж, на Турбо С и как можно точнее(минимум милисекунды). smile
PM MAIL   Вверх
NiJazz
Дата 2.3.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Код

clock_t  cl1, cl2;

// начало алгоритма
cl1 = clock();

// конец
cl2 = clock();

Добавлено @ 21:56
Может, и другие фукнции, но суть та же.
PM MAIL   Вверх
dima_mak
Дата 2.3.2005, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



да суть я понимаю smile))))))))
мне надо функции который возвращают время в мили секундах или, что то типа того.
PM MAIL   Вверх
Ni@m
Дата 3.3.2005, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 189
Регистрация: 11.3.2004
Где: почти Киев

Репутация: 0
Всего: 6



Код

time_t before, after;

before = time(NULL);
someFunc();
after = time(NULL);

int itogo = after - before;


єто будет тебе разница в милисекундах.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
Adil'
Дата 3.3.2005, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



Если someFunc быстрая, то все это лучше оформить в цикл, типа
Код
before = time(NULL);
for(int i=0;i<1000;i++)
 someFunc();
after = time(NULL);
double itogo = (after - before)/1000.;


Это сообщение отредактировал(а) Adil' - 3.3.2005, 12:42


--------------------
Удачи
PM MAIL WWW   Вверх
Guest
Дата 3.3.2005, 18:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











всё спасибо. я про цикл и не подумал smile
  Вверх
Fixin
Дата 3.3.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 2
Всего: 18



Цикл может тормозить - лучше goto с условием использовать - точнее будет.
PM MAIL ICQ   Вверх
Adil'
Дата 4.3.2005, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



Цитата(Fixin @ 3.3.2005, 19:44)
Цикл может тормозить - лучше goto с условием использовать - точнее будет
И то, и другое будет скомпилировано в джамп по условию...



--------------------
Удачи
PM MAIL WWW   Вверх
__Sergey__
Дата 8.3.2005, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 21.1.2005

Репутация: нет
Всего: 4



Код

#pragma once

#pragma warning(disable : 4035)

inline unsigned __int64 GetCycleCount(void)
{
   _asm    _emit 0x0F
   _asm    _emit 0x31
}

class KTimer
{
   unsigned __int64  m_startcycle;

public:

   unsigned __int64  m_overhead;

   KTimer(void)
   {
       m_overhead = 0;
       Start();
       m_overhead = Stop();
   }
   
   void Start(void)
   {
       m_startcycle = GetCycleCount();
   }

   unsigned __int64 Stop(void)
   {
       return GetCycleCount()-m_startcycle-m_overhead;
   }
};


PM MAIL   Вверх
versus
Дата 8.3.2005, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.3.2005
Где: Переславль-Залесс кий

Репутация: нет
Всего: 3



__Sergey__, маньяк :-))

Код

#include <ctime>
using namespace std;

double TickCount()
{
  return (double)clock()/CLOCKS_PER_SEC;
}

int main()
{
  double tcount;

   tcount = TickCount(); // start

   // do some time-consuming work ..

   cout.setf(ios::fixed);
   cout.precision(2);
   cout.setf(ios::showpoint);

   cout << "Execution time: " << TickCount() - tcount << " sec " << endl; // finish
}

PM MAIL WWW   Вверх
Да гость я...
Дата 14.3.2005, 07:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Для всех, кто хочет пользовать ф-цию time() для определения временнЫх интервалов в msec стандарт CRT-библиотеки, а также фирма MS напоминают:

Цитата
time

Gets the system time.

Return Value

time returns the time in elapsed seconds

ЗЫ: Кто-то умеет мерить величину меньшей дискретности, чем дискретность метода её измерения?
  Вверх
LuckLess
Дата 14.3.2005, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



см.
QueryPerformanceCounter()
и
QueryPerformanceFrequency ()
PM MAIL   Вверх
_hunter
Дата 14.3.2005, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



LuckLess, на турбо С ( который под дос ) ;)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.