Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Разница реакций Windows 98 и Windows X на Sleep и Delay   Найти похожие ветки 

 
Mefodiy   (2004-04-03 19:59) [0]

Привожу кусок кода, который в Windows 98 выполняется нормально, а в Windows XP - раз в 10 медленнее.

 for i := 1 to 72 do
 begin
   with MyBitmap.Canvas do
   begin
     FillRect(ClipRect);
     Font.Size := i;
     TextOut((MyBitmap.Width - TextWidth(s)) div 2,(MyBitmap.Height - TextHeight(s)) div 2,s);
   end;
   BitBlt(PaintBox1.Canvas.Handle,116,140,MyBitmap.Width,MyBitmap.Height,MyBitmap.Canvas.Handle,0,0,SRCCOPY);
   Sleep(delay_time);
 end;

     В чем тут дело ?


 
Defunct ©   (2004-04-03 20:14) [1]

Sleep никогда не будет работать правильно. Синхронизация ОС идет от системного таймера у которого частота 18.2 Гц. Т.е. минимальной задержкой является ~50 мс. Используйте TTimer вместо Sleep.


 
Soft ©   (2004-04-03 22:10) [2]

Defunct ©   (03.04.04 20:14) [1]

В Windows 2000 минимальный квант времени 10ms, так как это система "мягкого" реального времени. Но все зваисит от приоритета задачи, если прооритет довольно низок, то он может пропустить и несколько десятков квантов времени, которые будут отданы более приоритетным задачам.

Синхронизация ОС идет от системного таймера у которого частота 18.2 Гц.

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


 
Игорь Шевченко ©   (2004-04-03 22:47) [3]


> Синхронизация ОС идет от системного таймера у которого частота
> 18.2 Гц


"Длина временного интервала таймера зависит от аппаратной платнофм и определяется HAL. Например, этот интервал для большинства однопроцессорных х86-систем составляет 10 мс, а на большинстве многопроцессорных х86-систем - 15мс"

(с) Соломон, Руссинович: "Внутреннее устройство Windows 2000"


> Привожу кусок кода, который в Windows 98 выполняется нормально,
> а в Windows XP - раз в 10 медленнее.


Чем определяется медленность ? Чему равно delay_time ?


 
Mefodiy   (2004-04-04 15:36) [4]

Приведенный код предназначен для создания эффекта "выплывающего текста" (с увеличением его размера).
     Даже, если задаю delay_time:=1, то в Windows XP текс выплывает еле-еле, а в Windows 98 - почти моментально. Если задаю delay_time:=20 или 30 , то в Windows 98 смотрится нормально, в Windows XP - надо сидеть и ждать.
     Для информации: комп с Windows 98 - имеет процессор 933 МГц, а с Windows XP - 2,4 ГГц. В том и другом случае выполняется только одна эта программа.



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.039 c
3-1079929357
RenVold
2004-03-22 07:22
2004.04.18
Импорт данных из MS Access в IB


1-1080546521
pavel
2004-03-29 11:48
2004.04.18
Не могу сделать Build


4-1076561953
ai
2004-02-12 07:59
2004.04.18
Программное "нажатие" клавиши в другом приложении


4-1076505703
juiceman
2004-02-11 16:21
2004.04.18
информация из чужогго окна


1-1080938683
neVIP
2004-04-03 00:44
2004.04.18
Другой Calendar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский