Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Acc@imer (WingedFox)
Author Message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Wed Mar 01, 2006 10:09 pm (написано за 4 минуты 54 секунды)
   Post subject: Acc@imer
Reply with quote

Ускоритель таймера.

Наконец-то я добрался до ситуации, когда потребовалась серьёзная оптимизация работы setTimeout/setInterval.

Acc@imer - скрипт подменяющий собой функции setTimeout, clearTimeout, setInterval, clearInterval.
Теперь вместо кучи интервалов работает один, обрабатывающий очередь желающих поработать.

Для использования достаточно просто подключить на странице, дальше он все сделает сам.


Acc@imer.0.1.zip
 Description:
Acc@imer v0.1

Download
 Filename:  Acc@imer.0.1.zip
 Filesize:  1.29 KB
 Downloaded:  675 Time(s)

Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Wed Mar 01, 2006 10:41 pm (спустя 31 минуту; написано за 25 секунд)
   Post subject:
Reply with quote

Обновление

Добавлен сборщик мусора.


Acc@imer.0.2.zip
 Description:
Acc@imer v0.2

Download
 Filename:  Acc@imer.0.2.zip
 Filesize:  1.43 KB
 Downloaded:  869 Time(s)

Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Thu Mar 09, 2006 2:25 pm (спустя 7 дней 15 часов 44 минуты; написано за 22 секунды)
   Post subject:
Reply with quote

А можно пример, когда обычный механизм таймеров не срабатывает?
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Thu Mar 09, 2006 3:09 pm (спустя 44 минуты; написано за 7 минут 29 секунд)
   Post subject:
Reply with quote

Да он всегда работает.
Но, поскольку JS система псевдоасинхронная - серии интервалов/таймеров работают совершенно с непредсказуемыми задержками.
В IE таймер работает более-менее сносно - недавно обсуждалась эта тема, я приводил код с синхронной работой 6 таймеров.
В остальных же браузерах, FF например, таймер с 1ms задержкой стартует только через 16-31ms.

Если же таймеров много, а события должны работать синхронно... Получается вообще бардак.
В общем, я написал этот скрипт просто чтобы убрать лишние накладные расходы и синхронизировать те события, которые должны работать более-менее синхронно.

По результатам у меня в меню анимация стала работать куда более плавно. Правда, потом пришлось её всё равно переписать, т.к. медленные машины первая версия затормаживала очень сильно.
Back to top
View user's profile Send private message
AKS
Участник форума



Joined: 28 Dec 2005
Posts: 1174
Карма: 102
   поощрить/наказать


PostPosted: Fri Mar 10, 2006 8:07 am (спустя 16 часов 58 минут; написано за 46 секунд)
   Post subject:
Reply with quote

WingedFox
Будьте добры, просвятите, пожалуйста, какие машины нужно считать медленными (т.е. на которых Complete Menu Solution без Acc@imer не тянул в Ваших тестах)?
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Fri Mar 10, 2006 9:01 am (спустя 53 минуты; написано за 2 минуты 55 секунд)
   Post subject:
Reply with quote

Тормозили процессоры около 2ГГц при 5 и более параллельных анимациях blend+clip.

Ещё раз повторяю - тянули все. Но без этой библиотеки работа интервалов была совершенно непредсказуемой.

При использовании же библиотеки тормозили они все синхронно.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML