Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(pascal)прога для подсчета времени работы кода

22K
09 февраля 2007 года
Хильда
11 / / 09.02.2007
Нужно программа для подсчета времени потраченного на выполнение моей программы в Free Pascal! Хорошо чтобы считала до долей секунды! Очень срочно!
3.2K
09 февраля 2007 года
Sania
186 / / 28.10.2006
Прога должна быть внешней?
Если внутри, то 2 замера времени в коде...
Если внешняя, то 2 варианта, оба не юзал
1. Через возврат результата глобальными функциями, используется в олимпиадном программировании, максимальная точность.
2. Через ожидание потока: твоя прога меряет время, запускает дочерний поток, дожидается его завершения, меряет время.
252
09 февраля 2007 года
koderAlex
1.4K / / 07.09.2005
Цитата: Хильда
Нужно программа для подсчета времени потраченного на выполнение моей программы в Free Pascal! Хорошо чтобы считала до долей секунды! Очень срочно!


сессия ? сочуствую ) .
можно до такта процессора , но в многозадачных осях это не поможет .

22K
09 февраля 2007 года
Хильда
11 / / 09.02.2007
Спасибо!
Короче нужна программа как на олимпиадах по програмированию. А замер в начале и в конце проги вообще совпал! Надо что-то более мелкое брать, но я не знаю как! :( Подскажите пожалуйста!
252
09 февраля 2007 года
koderAlex
1.4K / / 07.09.2005
команда RDTSC записывает значение счётчика тактов проца в EDX:EAX .
зделай прогу с этой командой в начале и конце , сравни значения .
в чистом досе получиш время выполнения кода в тактах процессора .
22K
09 февраля 2007 года
Хильда
11 / / 09.02.2007
Спасибо! Сейчас попробую!
63
09 февраля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: koderAlex
сессия ? сочуствую ) .
можно до такта процессора , но в многозадачных осях это не поможет .


Можно QueryPerformanceCounter из WinAPI попробовать. Для замера очень коротких промежутков с высокой точностью.

22K
09 февраля 2007 года
Хильда
11 / / 09.02.2007
Я уже пробовала QueryPerformanceCounter, но в том коде что я нашла компилятор не понимает несклько строк! Вы не можите выложить код!?

P.S. До сессий мне ещё далеко...

Пожалуйста!!!
63
09 февраля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: Хильда
Вы не можите выложить код!?


Рискну набросать:) Только в структурном виде, вот:

Код:
/// Макс. поддерживаемая системой частота таймера
    LARGE_INTEGER _frequency_HRT;
/// Узнаем ее
QueryPerformanceFrequency(&_frequency_HRT);

/// Время от начала
    LARGE_INTEGER _begin_time;
/// Время конца
LARGE_INTEGER _end_time;

/// Засечение начального времени
QueryPerformanceCounter(&_begin_time);

// Операция, время которой засекаем

QueryPerformanceCounter(&_end_time);

///Находим время в удобном формате
unsigned int millisecondsElapsed = (unsigned int) ( (_end_time.QuadPart /(double) _frequency_HRT.QuadPart  -
        _begin_time.QuadPart / ( double) _frequency_HRT.QuadPart) * 1000);
22K
09 февраля 2007 года
Хильда
11 / / 09.02.2007
Пожалуйста можно мне как полной дуре... написать код для Free! Потому что я не понимаю чего не нравится компилятору!!! =( Я понимаю, что это очень нагло попросить написать программу... но может кто-нибудь поможет???
Пожалуйста!
63
09 февраля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: Хильда
Пожалуйста можно мне как полной дуре... написать код для Free! Потому что я не понимаю чего не нравится компилятору!!! =( Я понимаю, что это очень нагло попросить написать программу... но может кто-нибудь поможет???
Пожалуйста!


Это функции и код из чистого API, а как его подключить к паскалю, не знаю:(

257
09 февраля 2007 года
kosfiz
1.6K / / 18.09.2005
2Хильда
вот код для Free Pascal все сделал как у Zorkus'а
Код:
uses windows;

var freq_HRT, begin_time, end_time:int64;
begin
QueryPerformanceFrequency(freq_HRT);
QueryPerformanceCounter(begin_time);
// здесь выполняем то, время выполнения чего надо засеч
QueryPerformanceCounter(end_time);
writeln((end_time/freq_HRT - begin_time/freq_HRT)*1000);
readln;
end.
22K
09 февраля 2007 года
Хильда
11 / / 09.02.2007
СПАСИБО! Особенно kosfiz! Ты меня спас!! =)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог