Форум: "Начинающим";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
ВнизТаймер Найти похожие ветки
← →
Егорка (2009-12-26 13:56) [0]обычный использую с задержкой 20мс для вывода "бегущего" графика,но вывод происходит с небольшими рывками видимо изза неравномерных интервалов времени.
вопрос, как сделать "четкий" таймер,без лишней загрузки проца ?
← →
Сергей М. © (2009-12-26 19:41) [1]
> Таймер [D7]
> обычный использую
Это который TTimer что ли ?
Так он в принципе не может обеспечить такое временное разрешение - минимум 50 мс
← →
DVM © (2009-12-26 19:43) [2]http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=434
← →
Anatoly Podgoretsky © (2009-12-26 19:57) [3]> Сергей М. (26.12.2009 19:41:01) [1]
Минимум 10 мс и везение.
← →
Anatoly Podgoretsky © (2009-12-26 20:00) [4]> Anatoly Podgoretsky (26.12.2009 19:57:03) [3]
Это при условии не изменения кванта, и есть такая легальная возможность уменьшить квант до 1 мс
← →
Сергей М. © (2009-12-26 20:03) [5]
> Anatoly Podgoretsky © (26.12.09 19:57) [3]
Да, это как повезет.
Больше всего не повезет в Win98/Me - там 55 мс и более
← →
DVM © (2009-12-26 20:08) [6]
> Anatoly Podgoretsky ©
Меняй не меняй, а сообщения таймера как имеющие низкий приоритет могут быть просто отброшены если у окна которому они назначаются есть дела поважнее и в нужное время таймер может просто не тикнуть.
← →
Anatoly Podgoretsky © (2009-12-26 20:08) [7]> Сергей М. (26.12.2009 20:03:05) [5]
Не стоит о грустном, кроме того Win9х не поддерживаемая система.
← →
Anatoly Podgoretsky © (2009-12-26 20:38) [8]> DVM (26.12.2009 20:08:06) [6]
Я не возражаю
← →
0x00FF00 (2009-12-26 20:39) [9]> вопрос, как сделать "четкий" таймер,без лишней загрузки
> проца ?
Использовать таймер с вытесняющей многопоточностью.
Создаётся функцией timeSetEvent из библиотеки winmm, и поддерживает теоретически любой квант времени с шагом в одну миллисекунду.
Для удаления таймера пользуй timeKillEvent оттуда же.
← →
Егорка (2009-12-27 12:47) [10]
> timeSetEvent
ясно попробуем
еще уточнение
другой график использует поток со Sleep(20), при этом в Вин7 он также подергивается но в "низших" виндах все гладко
вопрос в Вин7 какието проблемы\изменения с выводом через GDI ?
← →
DVM © (2009-12-27 20:51) [11]
> Егорка (27.12.09 12:47) [10]
что то мне кажется, что причины подергивания совсем иные.
← →
Anatoly Podgoretsky © (2009-12-27 21:04) [12]Возможно, но человеческий глаз отлично замечает нестабильность и выглядит именно как подергивание.
← →
KilkennyCat © (2009-12-27 21:54) [13]
> DVM © (27.12.09 20:51) [11]
тебе не кажется, и дело даже не в таймере, учитывая 9 верхних
← →
DVM © (2009-12-27 22:48) [14]
> Егорка (26.12.09 13:56)
Мне непонятно одно - для кого и для чего предназначен такой бегущий график, что обновления скажем раз в секунду недостаточно? Зачем его обновлять с частотой 30-50 FPS ? Только процессор грузить.
← →
Германн © (2009-12-28 01:45) [15]
> DVM © (27.12.09 22:48) [14]
>
>
> > Егорка (26.12.09 13:56)
>
> Мне непонятно одно - для кого и для чего предназначен такой
> бегущий график, что обновления скажем раз в секунду недостаточно?
> Зачем его обновлять с частотой 30-50 FPS ?
А при чём тут FPS?
← →
KilkennyCat © (2009-12-28 02:18) [16]
> А при чём тут FPS?
А что еще может грузить? Громадный астрономический просчет полученной данной?
Как показывает практика, просчет графики и вывод графики по ресурсоемкости 1:9 соответственно.
Ну, это конечно, исходя от нормального программирования.
← →
DVM © (2009-12-28 08:33) [17]
> Германн © (28.12.09 01:45) [15]
> А при чём тут FPS?
FPS = Frames per second потому что вероятно. У него таймер на 20 мс - это значит что таймер отрабатывает 50 раз в секунду если повезет и следовательно 50 раз в секунду он обновит картинку.
← →
oldman © (2009-12-28 09:23) [18]
> DVM © (28.12.09 08:33) [17]
А глаз-то различает 24
:)))
← →
KilkennyCat © (2009-12-28 09:34) [19]
> oldman © (28.12.09 09:23) [18]
это один глаз. Обычно, у людей два глаза. значит, 48.
← →
KilkennyCat © (2009-12-28 09:35) [20]у японцев - 4 глаза. Поэтому они первые начали выпускать телевизоры 100гц.
← →
Anatoly Podgoretsky © (2009-12-28 11:26) [21]> oldman (28.12.2009 09:23:18) [18]
> глаз не различает 24 и даже 12
← →
Anatoly Podgoretsky © (2009-12-28 11:27) [22]> KilkennyCat (28.12.2009 09:35:20) [20]
У них глаза особые.
← →
clickmaker © (2009-12-28 11:45) [23]> У них глаза особые.
чем уже глаз, тем больше его разрешающая способность?
← →
Anatoly Podgoretsky © (2009-12-28 12:04) [24]> clickmaker (28.12.2009 11:45:23) [23]
Только 100 герцами можно пробить.
Вообще то не шучу, тонер для цветных принтеров делают с пометко для Азии, для Европы.
← →
KilkennyCat © (2009-12-28 12:04) [25]
> clickmaker © (28.12.09 11:45) [23]
ты плохо учил физику. где вода быстрее движется, в толстой части трубы или в тонкой?
← →
Anatoly Podgoretsky © (2009-12-28 12:06) [26]
> Anatoly Podgoretsky © (28.12.09 12:04) [24]
Кстати из-за узких глаз именно.
← →
Егорка (2009-12-28 19:48) [27]
> Зачем его обновлять с частотой 30-50 FPS ? Только процессор
> грузить.
не грузица вообще ,т.е. 0% по диспечеру, даже на олдовом компе
> что то мне кажется, что причины подергивания совсем иные.
я тоже думаю об этом , и почему именно в Вин7, а в старых нет
таймер то дергается видимо изза неравномерности тиков,а поток почему?
и даже не дергается а какбы тормозит\подвисает
рисуется на битмапе в памяти, выводится через Synchronize и Btblt
← →
sniknik © (2009-12-28 23:10) [28]> чем уже глаз, тем больше его разрешающая способность?
тогда уж, замечающая способность.
> таймер то дергается видимо изза неравномерности тиков,а поток почему?
знаешь, если и были какие то сомнения до этого, то этой фразой ты все их развеял... делаю ставку на твой код, как на основную причину.
← →
Игорь Шевченко © (2009-12-29 02:03) [29]Битва экстрасенсов. Литвин нервно курит, ожидая очередного поражения
← →
2expres (2009-12-29 12:12) [30]Сталкивался с подобной проблемой решил довольно просто:
1. Создаю поток в котором просто считываю системное время с помощью функции TimeGetTime и проверяю время вышло или нет.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c