Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2016, 18:16   #1
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию Измерять время работы в консоли

Здрасьте, подскажите, как можно измерить время работы алгоритма...? С помощь каких функции, процедур...?
manchester_alan вне форума Ответить с цитированием
Старый 09.04.2016, 18:26   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

По-разному.

Например профайлер https://www.google.com/search?q=delphi+profiler

Ну или можно использовать функции типа QueryPerformanceCounter https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

В зависимости от цели для получения точных и полезных результатов есть много нюансов.
https://www.google.com/search?q=code+benchmarking
https://en.wikipedia.org/wiki/Benchmark_%28computing%29
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.04.2016, 18:43   #3
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

ну я пробывал разное типо, TDateTime или gettickcount, в первом случае я не знаю, как такое число превратить в секунды хотя бы, а во втором случае вообще некорректно отображалось...
manchester_alan вне форума Ответить с цитированием
Старый 09.04.2016, 18:53   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Некорректно это как? Надо до выполнения нужного куска кода вызвать GetTickCount и сохранить полученное значение, и потом вызвать его снова и отнять от нового значения старое.

А у TDateTime точность намного ниже.
Цитата:
Сообщение от http://docwiki.embarcadero.com/Libraries/XE3/en/System.SysUtils.Now
Although TDateTime values can represent milliseconds, Now is accurate only to the nearest second.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.04.2016 в 19:02.
Alex11223 вне форума Ответить с цитированием
Старый 09.04.2016, 19:04   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
  mystartdatetime:=now;
...................................................
    t:=FormatDateTime('hh:nn:ss:zzz', Now -mystartdatetime);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.04.2016, 19:47   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
А у TDateTime точность намного ниже.
на малых интервалах и gettickcount() даёт 1500% погрешности.
Лучше уж юзать QueryPerformanceXXX().

Но, естественно, на многозадачных (и многоядерных) системах проканает только относительное измерение времён. Об абсолютном и речи нет.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 10.04.2016, 12:49   #7
manchester_alan
Форумчанин
 
Регистрация: 07.01.2015
Сообщений: 231
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Некорректно это как? Надо до выполнения нужного куска кода вызвать GetTickCount и сохранить полученное значение, и потом вызвать его снова и отнять от нового значения старое.

А у TDateTime точность намного ниже.
TDateTime:

var a,b:TDateTime;
time:integer;
begin
a:=now;
..........
.......
.......
b:=now;
time:=b-a;

и вот как мне правильнее бы это реализовать?)

gettickcount почти также делал...
manchester_alan вне форума Ответить с цитированием
Старый 10.04.2016, 12:53   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://www.google.com/search?q=delp...ime+difference
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать, используя структуру данных запись, завод (наименование станка, время простоя в месяц, время работы в месяц). Составить Ксюндра Помощь студентам 1 13.03.2014 17:40
Время работы программы. Skrillex9666 БД в Delphi 7 10.01.2014 11:41
Измерять напряжение используя APC Back-UPS Pro 1000 Stilet Компьютерное железо 6 13.10.2010 17:06
Время работы WINDOWS В_И_К_Т_О_Р Помощь студентам 8 30.01.2008 12:42
Время работы сортировок Боня Помощь студентам 1 10.02.2007 17:53