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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Bench test 
:(
    Опции темы
klein
Дата 7.10.2006, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



    smile Доброго времени суток! smile 
  В связи с наличием настроек в С++ билдере на оптимизацию компилирования возникла мысль на тестирование одной и той же пограммы (точнее кода ) скомпилированых при разных настройках, возникла мысль написать програму на основе цикла со счетчиком времени.
   Алгоритм такой : до начала исполнения цикла считывается время в даный момент (Собственно в этом и состоит мой вопрос. Как для консольки узнать время?) , и спосле цикла тоже фиксируется время, от которого отнимается первое время.
   И еще возникает вопрос как отнимать время ( может быть с помощью масива) ?

   Прошу прощения за граматику, русский не мой родной язык.  А также просьба не давать уже готовый код, так мне будет интереснее помучиться. smile 
   Заранее благодарен.  smile 

PM MAIL   Вверх
Daevaorn
Дата 7.10.2006, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



klein, 
http://windowssdk.msdn.microsoft.com/en-us...y/ms632592.aspx

А вообще для этого профайлеры существуют:
http://www.automatedqa.com/products/aqtime/
PM MAIL WWW   Вверх
klein
Дата 7.10.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 Из даных ссылок наверно я много пользы не высосу, хотя постараюсь.
 А никакого оператора или функции нет ?
PM MAIL   Вверх
Daevaorn
Дата 7.10.2006, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(klein @  7.10.2006,  22:42 Найти цитируемый пост)
 А никакого оператора или функции нет ? 

В первой ссылке как раз и описаны функции
PM MAIL WWW   Вверх
klein
Дата 7.10.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Извиняюсь, с первого разу не розглядел, хотя асортимент настолько объемный, что не знаю с чего начинать.  smile 
PM MAIL   Вверх
klein
Дата 8.10.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 Сори за навязчивость. smile 
 Чтото не могу розобраться. При выборе из всех функций остановился на QueryPerformanceCounter   и   SetTimer. Мне кажется что больше подходит второй вариант.  smile 


Это сообщение отредактировал(а) klein - 8.10.2006, 11:51
PM MAIL   Вверх
Daevaorn
Дата 8.10.2006, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



файл xtimer.h: 
Код

#pragma once
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

class CXTimer {
  __int64 Freq;
  __int64 Start;

  void InitFreq();
public:
  CXTimer();

  void Reset();
  inline double GetElapsed();
  inline double GetElapsedSec();
  inline double GetFreq();
};


файл xtimer.cpp 
Код

#include "xtimer.h"

CXTimer::CXTimer()
{
  InitFreq();
  Reset();
}

void CXTimer::InitFreq()
{
  QueryPerformanceFrequency((PLARGE_INTEGER) &Freq);
}

void CXTimer::Reset()
{
  QueryPerformanceCounter((PLARGE_INTEGER) &Start);
}

inline double CXTimer::GetElapsed()
{
  __int64 Now;
  QueryPerformanceCounter((PLARGE_INTEGER) &Now);
  return (double) (Now - Start);
}

inline double CXTimer::GetElapsedSec()
{
  return GetElapsed() / GetFreq();
}

inline double CXTimer::GetFreq()
{
  return (double) Freq;
}

 

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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