Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убрать тормоза в программе? способы решения 
:(
    Опции темы
Bog d`An
Дата 10.2.2006, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Дано: процедура поиска пользователей в л.с., к-я затупляет прогу сек на 10...
Эдит, в который в это время надо чтонить вводить...
Как это сделать?
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
SergeBS
Дата 10.2.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 2
Всего: 22



Writing multi-threaded applications - читать и делать
PM MAIL   Вверх
Bog d`An
Дата 10.2.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



угу... перед тем как задавать вопрос выделил в отдельный тред... всё равно тупит... smile
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Romikgy
Дата 10.2.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Код покажи


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
_hunter
Дата 10.2.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



а приоритет ему понизил? что диспетчер задач говорит?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Akella
Дата 10.2.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Сколько установил SleepTime?
поставь Thread.SleepTime = 500;
PM MAIL   Вверх
Int64
Дата 11.2.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.2.2006

Репутация: 1
Всего: 1



ProcessMessages?
PM MAIL   Вверх
Quadr0
Дата 11.2.2006, 14:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:01
  Вверх
Bog d`An
Дата 12.2.2006, 03:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Цитата(Quadr0 @ 11.2.2006, 14:36 Найти цитируемый пост)
Здесь придётся поломать голову над оптимизацией самого процесса поиска.

поиск юзеров данной рабочей группы, используя GlobalEnumResources
почему то мне кажется что предложеная Quadr0ом оптимизация процесса поиска тут мало поможет smile

Код

Procedure AddUserFromDomain(Domain:String;User:TStringlist);
Var
  TmpStrList:TStringList;
  TmpNR:TNetResource;
  PTmpNR: PNetResource;
  BufSize:Cardinal;
Begin
  TmpStrList:=TStringList.Create;

  Domain := Domain + #0;
  FillChar(TmpNR, SizeOf(TmpNR) , 0);
  with TmpNR do
  begin
    dwScope := 2;
    dwType := 3;
    dwDisplayType := 2;
    dwUsage := 2;
    lpRemoteName := @Domain[1];
  end;
  BufSize := SizeOf(TmpNR);
  GetMem(PTmpNR, BufSize);
  PTmpNR^:=TmpNR;

    GlobalEnumResources(PTmpNR,2,tmpStrList);
    User.Text:=User.Text+tmpStrList.Text;
  FreeMem(PTmpNR, BufSize);
  TmpStrList.Free;
  TmpStrList:=nil;
End;



зы: странности - при подключённом нете затупляет... какого? ему ж чётко сказано где искать smile

--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
RST8
Дата 13.2.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: 1
Всего: 1



Цитата(Quadr0 @ 11.2.2006, 14:36 Найти цитируемый пост)
т.к. для некоторых похожих слов могут получиться одинаковые хеши.


немогут, для этого они и существуют. Одиенаковыми они могут получиться для совсем разных строк, какие даже специально найти непросто. Хотя согласен что теоретически это не совсем надежно.
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Bog d`An
Дата 13.2.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



раскидал по тредам ВСЁ что можно и что нельзя... вплоть до формактивэйт...
Akella, что за Thread.SleepTime, можно подробнее?
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Quadr0
Дата 14.2.2006, 01:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:02
  Вверх
Bog d`An
Дата 14.2.2006, 03:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Цитата(Quadr0 @ 14.2.2006, 01:41 Найти цитируемый пост)
Цитата(Bog d`An @ 12.2.2006, 04:31 Найти цитируемый пост)
почему то мне кажется что предложеная Quadr0ом оптимизация процесса поиска тут мало поможет
Цитата(Quadr0 @ 14.2.2006, 01:41 Найти цитируемый пост)
ДАНО:
1 эдитбокс, 1 листбокс, слабенький комп и как назло туча слов. smile Возьмём для верности > 50 тысяч слов, выдранных мною из какого-то словаря. smile Думаю этого будет вполне достаточно.

Мда... Спасибо, конечно, но вообще-то я имел в виду именно это - не поможет по той простой причине, что записей не 50000 а совсем небольшое количество, порядка десятка...
Цитата(Bog d`An @ 10.2.2006, 08:39 Найти цитируемый пост)
Дано: процедура поиска пользователей в л.с.

зы: так как насчёт рассказать поподробней этот кусок?:
Цитата(Akella @ 10.2.2006, 15:24 Найти цитируемый пост)
Сколько установил SleepTime?
поставь Thread.SleepTime = 500;


--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Демо
Дата 14.2.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Bog d`An @ 14.2.2006, 04:49 Найти цитируемый пост)
зы: так как насчёт рассказать поподробней этот кусок?


Не заморачивайся. К твоему вопросу то, что написано, не имеет табсолютно никакого отношения. Да честно говоря, ни к чему не имеет. Так как не существует такое понятие.

Твоя проблема в правильной реализации поиска в отдельном потоке, а не в ускорении его. Вот из этого и надо исходить.

Приведи код потока, в котором ведешь поиск.


--------------------
    
PM MAIL ICQ Skype   Вверх
Bog d`An
Дата 15.2.2006, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Код

...
  TScanUserThread = class(TThread)
  private
    { Private declarations }
  protected
...
    procedure ScanUser;
...
  end;
...
var
  MainForm: TMainForm;
  ScanUserThread:TScanUserThread;
  UList:TStringList;

...
implementation
...



Procedure TScanUserThread.ScanUser;
Var
  Counter:integer;
Begin
  With MainForm do
  Begin
...
  UList.Clear;
  For counter:=0 to bsSkinCheckListBox1.Items.Count-1 do
  Begin
    if bsSkinCheckListBox1.Checked[counter] then
      AddUserFromDomain(bsSkinCheckListBox1.Items[counter],UList);
  End;
...
    For counter:=UList.Count-1 downto 0 do
    Begin
      if ping(Copy(UList[counter],3,length(UList[counter])))=-1 then
        UList.Delete(counter);
    End;
...
  End;
End;



Добавлено @ 04:30
ps: после того как раскидал по тредам всё тормоза уменьшились до 2 сек но не пропали.
зыы:
Цитата(Демо @ 14.2.2006, 13:01 Найти цитируемый пост)
Твоя проблема в правильной реализации поиска в отдельном потоке, а не в ускорении его. Вот из этого и надо исходить.

я так понимаю что если отдельный поток - значит всю прогу не затупляет? Даже если через попу написан...
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.