Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.02.2010, 10:53
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию Определение скорости

Уважаемые товарищи знатоки,
Дело собственно вот в чем:
Есть процедура, которая постоянно выполняется в цикле, нужно определить сколько раз эта процедура выполняется в секунду,
как это можно сделать?

Последний раз редактировалось Nothing, 25.02.2010 в 11:11.
Ответить с цитированием
  #2  
Старый 25.02.2010, 11:28
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Засеки время выполнения цикла...
Замерь текущее время до цикла затем замерь текущее время после цикла...Вычти одно из другого и подели на количество повторений в цикле...
Так же можно воспользоваться более точными счетчиками GetTickCount...
http://www.codenet.ru/progr/delphi/W...tTickCount.php
Или очень точным счетчиком QueryPerformanceCounter...
http://www.delphisources.ru/pages/fa...ct_timer2.html
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 25.02.2010 в 11:32.
Ответить с цитированием
  #3  
Старый 25.02.2010, 11:57
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Эта процедура выполняется единожды в цикле, собственно мне нужно замерить количество выполнений процедуры за определенный прмежуток времени
Ответить с цитированием
  #4  
Старый 25.02.2010, 15:38
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Я понял тебя....
У тебя как то так?
Код:
for i := 0 to 1000 do
begin
 MyProcedure;
end;
Ну так сделай так...
Код:
for i := 0 to 1000 do
begin
 n :=  GetTickCount;//Засек время
 MyProcedure;//Выполнил процедуру
 m := GetTickCount;//Засек время
 s := m-n;//Вычислил время выполнения процедуры
 s1 := s1+s;//Вычислил общее время цикла
end;
 t := s1 /1000;//получил среднее время выполнения процедуры
 //К примеру 0,001 сек...т.е. за одну сек 1000 раз...все)))
Если не то, тогда код цикла в студию, гадать могут только цыганки...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #5  
Старый 25.02.2010, 15:49
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

http://decoding.narod.ru/faq/hard/pr...or002.html#005
Ответить с цитированием
  #6  
Старый 25.02.2010, 18:00
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Есть еще один вопросик, решил не создавать новую тему,

Вообщем мне нужно загрузить в программу список (TList), как это сделать так чтобы принажатии на кнопку вызывалось окно выбора файла, а после выбора содержимое файла присваивалось переменной типа TList
Ответить с цитированием
  #7  
Старый 25.02.2010, 21:43
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
Сообщение от Nothing
Есть еще один вопросик, решил не создавать новую тему,

Вообщем мне нужно загрузить в программу список (TList), как это сделать так чтобы принажатии на кнопку вызывалось окно выбора файла, а после выбора содержимое файла присваивалось переменной типа TList
Наверное, ты имел ввиду TListBox? Можно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
Ответить с цитированием
  #8  
Старый 25.02.2010, 23:13
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

ага, понял спасибо
Ответить с цитированием
  #9  
Старый 26.02.2010, 00:15
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Выдает ошибку
[Error] Unit1.pas(52): Undeclared identifier: 'OpenDialog1'
почему?
На форму вкинул, в types она есть OpenDialog1: TOpenDialog;
Ответить с цитированием
  #10  
Старый 26.02.2010, 02:37
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

А в uses, есть Dialogs?
Ответить с цитированием
  #11  
Старый 26.02.2010, 14:01
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Да есть, чтоб постоянно не париться вот набросок
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
tform1 = class(TForm)
    Label1: TLabel;
    Subject: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Load: TButton;
    Start: TButton;
    Cancel: TButton;
    CheckBox1: TCheckBox;
    Label5: TLabel;
    Edit1: TEdit;
    Label6: TLabel;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    About1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    procedure Loadclick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}

procedure Loadclick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
end;

end.
Ответить с цитированием
  #12  
Старый 26.02.2010, 14:06
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Попробуй так)))
Код:
procedure tform1.Loadclick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #13  
Старый 26.02.2010, 14:26
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

О1, да простите
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:55.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025