User Tools

Site Tools


hackslowdownos5

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

В старых пальмосах существовал эффект замедления работы системы от хаков, которые вешаются на сисколл EvtGetEvent. (см HackSlowdown ).

В пятой оси на EvtGetEvent повешено оповещение всех подписчиков о нотификации sysNotifyEventDequeuedEvent. В подписчики можно записать практически все программы, у которых интерфейс состоит из больших кнопок enable/disable кучи опций. Интересно было, насколько подобные утилиты тормозят систему.

Я написал программку, которая 10000 раз запихивает в очередь символ и сразу же извлекает его. Соответственно 10000 будет происходить оповещение об извлечениии события из очереди.

Измерения производились на nx60. Время замерялось в секундах и тиках. Тик - примерно 1/10 секунды (с точностью до неких особенностей). Наличие подписчиков нотификаций определялось alarmlistом.

Результаты:

  • Без утилит: 254 тика, 3 секунды.
  • С McPhling: 2284 тика, 23 секунды.
  • С McPhling и Cyrhack: 7318 тиков, 74 секунды
  • С двумя нативными хаками (BrokenJog и Deadhack): 291 тик, 3 секунды

При оповещении McPhling вызывается процедура, при оповещении Cyrhack вызывается программа.

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

Замер времени расхода батареи по Battery Bench 2. Brightness 20%, Full power.

  • Без утилит: 4:15
  • С McPhling, Cyrhack: 4:07

Мораль: машинка может легко замедлиться в 30 раз. Это несущественно сказывается на времени ее жизни. Такое замедление не будет заметно в PIM приложениях, но будет ощущаться в игрушках и при работе с клавиатурой. Так что будьте внимательны, любители резидентных утилит.

Добавление: мини-доклад с пилотовки 20.04.04

С помощью программы Palm Internals (бывший AlarmList) можно измерить замедление реакции КПК, вносимое разными программами. 
Тестирование заключается в измерении времени обработки 10000 системных событий. Время измеряется в секундах и тиках (1/100 секунды)

http://yahm.palmoid.com/PalmInternals.prc

Полученные данные по замедлению, которое вносят русификаторы. Измерялось на моей NX-60.

КПК без русского:  254 тик,  3 сек.
Кирхак 1.10пре:   5694 тик, 58 сек
Пилок 3.5:              276 тик,  3 сек
Папирус 1.10:        7894 тик,79 сек

С одной стороны 10000 событий - это очень много, в то же время добавление к русификатору программ McPhling, 
KeyQuick OKey и прочих псевдо-хаков может быть существенным. Замедление может сказаться на точности 
позиционирования стила, на точности распознавания граффити и на скорости ввода букв через граффити-клавиатуру.
hackslowdownos5.txt · Last modified: 2004/04/21 09:04 by 127.0.0.1