Форум: "Основная";
Текущий архив: 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