Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Снижение загрузки процессора [D7, WinXP]


NeoMaster ©   (2005-08-11 19:42:00) 

Подскажите каким образом можно снизить загруженность процессор. Я делаю файловый поисковик, который постоянно просматривает все жёсткие диски. Время поиска можно растянуть, но только чтобы жёсткий диск не так сильно гудел и процессор не так напрягался. Подскажите.


NeoMaster   (2005-08-14 13:47:00) [1]

Отвечать сюда:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1124012368&n=5


NeoMaster   (2005-08-14 11:20:00) [2]

>Всем
Sleep и низкий приоритет делаю своё дело. Спасибо за подсказку.
>TUser, Grief
Я использую ReadDirectoryChangesW, но я не знаю каким образом можно просматривать изменения всех дисков одновременно. Кто знает, подскажите.


Grief   (2005-08-14 11:05:00) [3]

Постоянно просматривает все ЖОСТКИЕ?! Да ты маньяк. По сути быстро все равно не получится. А со слипом - глючно получится - рывками. Погудит, погудит перестанет. Снова погудит.


TUser   (2005-08-12 08:59:00) [4]

> Я делаю файловый поисковик, который постояннопросматривает все жёсткие диски.

Думаю - зря ты так делаешь. См. FindFirstChangeNotification ect.


Ботвин Дмитрий   (2005-08-12 07:44:00) [5]

Запускай свой поисковик в отдельным потоке с простаивающим приоритетом и не забывай в цикле ставить слип, лучще действительно тот, что указан в посте [3].


Alexander Panov   (2005-08-11 22:09:00) [6]

>Sumor   (11.08.05 22:06) [4]

Не поможет...


Sumor   (2005-08-11 22:06:00) [7]

А ещё можно поиграться низким приорететом


kblc   (2005-08-11 21:01:00) [8]

советую сделать так:
procedure Sleep_(const mTimeout: Cardinal);
var
 starttime: Cardinal;
begin
 Application.ProcessMessages;
 starttime:=GetTickCount;
 while StartTime+mTimeOut>GetTickCount do
 begin
   Application.ProcessMessages;
   Sleep(1); //можешь поставить 10~100 по твоему выбору.
 end;
end;


Leonid Troyanovsky   (2005-08-11 20:13:00) [9]


> NightLord ©   (11.08.05 20:01) [1]
> Sleep({указываешь время})/


>0

--
Regards, LVT.


NightLord   (2005-08-11 20:01:00) [10]

Sleep( {указываешь время})/


Наверх

Титульная страница Поиск, карта сайта Написать письмо