Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Разница реакций 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.034 c
7-1075107885
Signed
2004-01-26 12:04
2004.04.18
COM порт


14-1079969320
}|{yk
2004-03-22 18:28
2004.04.18
Вопрос по ASP


14-1080217811
panov
2004-03-25 15:30
2004.04.18
Новый форум.


3-1080022593
russko
2004-03-23 09:16
2004.04.18
Копирование БД


1-1080851238
Erik
2004-04-02 00:27
2004.04.18
Как присвоить bitmap из ImageList в TImage?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский