Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/45: Рейтинг темы: голосов - 45, средняя оценка - 4.93
Anross
0 / 0 / 0
Регистрация: 11.10.2012
Сообщений: 39
1

Оптимизация кода. Замер времени выполнения части кода.

14.11.2012, 10:52. Просмотров 9282. Ответов 4

Доброе утро. Есть желание посмотреть сколько времени занимает выполнение какого-то блока кода/отдельной функции или процедуры/программы целиком дабы все это оптимизировать. Подскажите пожалуйста какие есть инструменты в Delphi для оптимизации кода, исходя из выше описанного желания? Желательно с примерами, или ссылками на хорошие статьи.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 10:52
Ответы с готовыми решениями:

Замер скорости выполнения программы или оптимизация проекта
Всем привет, не знаете как лучше замерить скорость программы ?, чтобы можно было сравнить в какой...

Замер времени выполнения программного кода
Как замерить время выполнения этого программного кода (в секундах) и вывести его на экран? Как...

Наиболее точный замер времени выполнения кода
Всех приветствую! Мужики, возник вот такой вопрос. Первый код: Dim str As String ...

Замер выполнения кода (разница времени между контрольными точками)
нагуглил my $start_time = ; # код my $delta = tv_interval($start_time); print $delta; ...

4
Alex_pac
1297 / 703 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
14.11.2012, 11:05 2
Есть желание посмотреть сколько времени занимает выполнение какого-то блока кода/отдельной функции или процедуры/программы целиком дабы все это оптимизировать
Узнать скорость выполнения определённого участка кода
0
x128
201 / 183 / 41
Регистрация: 17.04.2010
Сообщений: 422
14.11.2012, 11:34 3
Очень полезная тулза
0
Mawrat
12936 / 5788 / 1704
Регистрация: 19.09.2009
Сообщений: 8,807
14.11.2012, 11:59 4
Два способа:
1. Наиболее точный метод. При этом, на замеряемом участке режим работы компьютера не должен меняться. Например, если на замеряемом временном участке система перейдёт в спящий режим, то измерения станут неверными.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure TForm1.Button1Click(Sender: TObject);
const
  M = 10;
var
  i : Integer;
  Fr, t1, t2 : Int64;
  Dt : Extended;
begin
  //Определяем тактовую частоту процессора (количество тактов в секунду).
  QueryPerformanceFrequency(Fr);
  if Fr = 0 then begin
    ShowMessage('Не удалось получить сведения о тактовой частоте.');
    Exit;
  end;
  
  //ShowMessage('Тактовая частота процессора (количество тактов в секунду): ' + IntToStr(Fr));
 
  //Показание счётчика тактов.
  QueryPerformanceCounter(t1);
 
  //Выполнение исследуемого процесса.
  for i := 1 to M do Sleep(10);
 
  //Показание счётчика тактов.
  QueryPerformanceCounter(t2);
  //Расчёт времени.
  Dt := (t2 - t1) / Fr;
 
  ShowMessage('Длительность выполнения в секундах: ' + FloatToStr(Dt));
end;
2. Второй способ. Менее точный. Точность измерения - 10 миллисекунд. На некоторых системах точность может быть около 3 миллисекунд.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
const
  M = 10;
var
  t : Int64;
  i : Integer;
begin
  t := GetTickCount;
 
  //Запуск исследуемого процесса.
  for i := 1 to M do Sleep(10);
 
  t := GetTickCount - t;
  ShowMessage('Время выполнения: ' + IntToStr(t) + ' миллисекунд.');
end;
2
dondublon
4076 / 1545 / 292
Регистрация: 17.03.2012
Сообщений: 8,451
Записей в блоге: 5
15.11.2012, 08:45 5
Для сложных замеров есть AQTime.
Сцукоплатный, но вы, наверное, знаете, что делать.
Правда, не работает на x64.
0
15.11.2012, 08:45
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 08:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Засечь время выполнения (в ms) определённого кода или части кода
Доброго времени суток всем. Хотелось бы поинтересоваться у знающих людей. Как можно засеч время...

Замер скорости выполнения участка кода
Нужно замерить скорость выполнения кода в рабочем проекте. Проблема дополняется тем что код нельзя...

Замер выполнения отрезка кода в микросекундах
Подскажите, в с++ 11 #include <chrono> есть возможность ставить на паузу код в различной мере, в...

Замер времени работы участка кода
Сразу скажу что меня не интересуют стандартные замеры времени роботы участка кода, так как они...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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