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

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

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

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

Оптимизация кода
Как увеличить переменную count используя цикл? if checkbox1.Checked=true then inc(count); if...

Переход из одной части кода в другую
Здравствуйте! Я пишу консольное приложение на Delphi. Но как, например, при одном значении...

Оптимизация кода
Как можно оптимизировать следующий код: if Column.FieldName = 'CLI_TEXT' then begin s:=...

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

Оптимизация кода
На форме есть около 30 элементов MaskEdit и CheckBox, расположенных последовательно, и при...

4
Alex_pac
1293 / 699 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
14.11.2012, 11:05 2
Есть желание посмотреть сколько времени занимает выполнение какого-то блока кода/отдельной функции или процедуры/программы целиком дабы все это оптимизировать
Узнать скорость выполнения определённого участка кода
0
x128
182 / 169 / 36
Регистрация: 17.04.2010
Сообщений: 334
14.11.2012, 11:34 3
Очень полезная тулза
0
Mawrat
12857 / 5761 / 1701
Регистрация: 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
2263 / 1194 / 247
Регистрация: 17.03.2012
Сообщений: 7,101
Записей в блоге: 5
15.11.2012, 08:45 5
Для сложных замеров есть AQTime.
Сцукоплатный, но вы, наверное, знаете, что делать.
Правда, не работает на x64.
0
15.11.2012, 08:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 08:45

Оптимизация кода.
Привет всем. Вот хотел спросить у людей какие кто советы даст по оптимизации кода программы. А то...

Оптимизация кода
Доброго времени суток! Необходимо оптимизировать код. Проблема: загружаю звуковой файл из ресурса...

оптимизация кода
Доброго времени суток. у меня возник такой вопрос: как сократить этот код: procedure...


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

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

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