motofan logo
3 страниц V  1 2 3 >        
> 

zSHapmd v11, скриптовой аналог стандартному Apmd (управляет частотой процессора)

VINRARUS
сообщение 29.9.2016, 20:03 Закрепленное сообщение!


Термоядерный
********

Группа: Пользователи
Сообщений: 3 257
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1095



zSHapmd v11 (2016) принципиально новый демон управления частотой ЦП в рамках 133-532 МГц или 133-740 МГц. dribble.gif
Логика работы
С интервалом в 0,1 сек проверяем не загружел ли ЦП при 133 МГц на 100%, если да - включаем 399 МГц.
При 399 МГц раз в секунду проверяем нагрузку, при простое переводим опять на 133 МГц, при 100% нагрузке включаем повышенные частоты (532 МГц или 740).
Ну а на повышеных смотрим раз в секунду на нагрузку, если ниже чем нужно - включаем 399 МГц.

Економия в том шо он не прыгает на 740 МГц при любом пчихе, как у стандартного apmd (а єто реальная єкономия), ну а скорость в том шо 133>>399 МГц по моему быстрее сменяется чем у apmd.
[close]
Благодаря етому исследованию удалось в разы увеличить эфективность механизма: было решено делать переходы не по маленьких ступеньках (133, 266, 399, 532, 636, 740), а шагать сразу через несколько ступенек (133, 399, 740) - в результате получаем отличное быстродействие в сумме с экономией батареи (правда на 133 МГц ЦП загружен где то на 20% и влияние этого на батарею спорное). yesyes.gif

Так же исследовав показатели /proc/stat удалось вообще убрать арифметические операции когда нужно отслеживать 100% нагрузку ЦП (на 133 МГц). dirol.gif

Так же было добавлено автоопредиление макс. частоты (532 или 740), ну и написан небольшой скрипт запуска\остановки.
ПС: желающим добавить в автозагрузку нужно добавлять именно файл "zSHapmd" wink.gif

Ну я месяц походил с ним безболезненно, но непредвзято вынести вердикт мне сложно, может у вас получится... smile.gif

Сообщение отредактировал VINRARUS - 30.9.2016, 20:00
Прикрепленный файл zSHapmd_v11.zip   ( 1.07 килобайт ) Кол-во скачиваний: 63
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 16.12.2011, 1:18


Термоядерный
********

Группа: Пользователи
Сообщений: 3 257
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1095



Добавлен zSHapmd v7 (в прикрепленном архиве все 4 версии)
Вот потратил один вечер и написал скриптовой аналог стандартному apmd (утилита для автоматического управления частотой процессора в зависимости от его загруженности), и назвал его zSHapmd.
Теперь каждый может настроить его под себя так как пощитает нужным. Например для большей производительности системы или лучших характеристик энергосбережения акб, или исходя из своей бездарности wink.gif

В архиве есть 2 версии: se1.sh и se5.sh и se6.sh, и запускать нужно только одну из них, и ничего больше делать не нада, после запуска прога сама деактивирует стандартный apmd, работает всё до перезагрузки.
После запуска создастся файл /tmp/zSHapmd, и если его удалить, то прога остановится и выдаст сообщение.
Отличия между 1й и 5й и 6й версией:

версия создана только для ознакомления с механизмом, использует на много проще механизм узнавания загруженности процессора (но более прожорливый), и использует не очень оптимальные настройки: а-ля "Ступеньки"(то есть частота меняется оочень плавно), интересно наблюдать как телефон медленно просыпается и засыпает smile.gif
Вот лог её работы /tmp/zSHapmd (частота процессора MHz - загрузка процессора %):
Spoiler:
Thu Dec 15 15:18:11 GMT 2011
532 -
399 - 8
266 - 7
133 - 7
133 - 22
133 - 35
266 - 75
133 - 35
133 - 31
133 - 5
133 - 6
266 - 55
133 - 21
133 - 25
133 - 31
133 - 45
133 - 37
133 - 25
133 - 37
133 - 26
266 - 61
399 - 76
532 - 69
399 - 0
266 - 0
399 - 71
266 - 0
399 - 78
266 - 0
399 - 71
266 - 7
399 - 73
532 - 53
532 - 58
399 - 0
266 - 15
133 - 0
266 - 52
133 - 0
133 - 11
133 - 29
266 - 64
399 - 68
532 - 61
532 - 75
399 - 38
266 - 23
133 - 0
133 - 5
133 - 5
266 - 58
399 - 64
266 - 7
133 - 7
133 - 47
133 - 5
133 - 5
133 - 0
[close]

версия уже более допилена, имеет более сложный код, оптимизирована, имеет умный алгоритм проверки средней загруженности процессора за одиницу времени (и на много меньше нагружает CPU), продуманные настройки.
Вот лог её работы /tmp/zSHapmd (частота процессора MHz - загрузка процессора %):
Spoiler:
Thu Dec 15 15:25:00 GMT 2011
532 -
532 - 32
399 - 21
399 - 13
266 - 2
266 - 4
133 - 12
133 - 39
399 - 100
532 - 83
532 - 7
399 - 2
399 - 4
266 - 2
266 - 4
133 - 3
133 - 7
133 - 18
133 - 7
133 - 19
133 - 7
133 - 11
133 - 8
133 - 8
133 - 8
133 - 7
133 - 8
133 - 7
133 - 9
133 - 7
133 - 8
133 - 7
133 - 8
133 - 7
133 - 8
133 - 7
133 - 8
133 - 22
133 - 7
133 - 8
133 - 6
133 - 8
133 - 6
133 - 8
133 - 6
133 - 8
133 - 7
133 - 8
133 - 6
133 - 8
133 - 7
133 - 8
133 - 6
133 - 10
133 - 8
133 - 6
133 - 8
399 - 82
399 - 63
399 - 36
399 - 5
399 - 69
[close]

это немного переделанная 5я версия, но сделал что теперь проц будет дольше на 399 висеть (не переключая сразу на 532), так лучше должно влиять на батарейку, но при необходимости все равно переключит на 532.
Вот лог её работы /tmp/zSHapmd (частота процессора MHz - загрузка процессора %):
Spoiler:
Fri Dec 16 03:10:59 GMT 2011
532 -
532 - 35
399 - 14
399 - 3
266 - 2
266 - 31
266 - 4
133 - 2
133 - 8
133 - 36
399 - 80
399 - 94
399 - 2
266 - 2
266 - 7
133 - 4
133 - 8
133 - 11
133 - 8
133 - 9
133 - 7
133 - 8
133 - 7
133 - 9
133 - 7
133 - 8
133 - 7
133 - 8
133 - 7
133 - 11
133 - 53
133 - 68
399 - 100
399 - 82
532 - 83
532 - 37
399 - 21
399 - 55
399 - 30
399 - 11
266 - 11
266 - 14
266 - 26
266 - 23
266 - 4
133 - 9
399 - 75
399 - 49
399 - 32
399 - 24
[close]

это та же 6я версия, но параметры вынесены в начало скрипта для более лёгкой настройки. Ну еще чють подправлена настройка.


5я и выше версия вполне сгодится для постоянного использования, так как имеет достойные характеристики (ну не хуже чем в нативе smile.gif ), и настроена для предотвращения не обоснованных скачков частоты (особенно это касается автопонижения частоты), умеет держать постоянную частоту без скачков (видно в последних строчках лога), это хорошо видно например с включенным рокбоксом.
К стати для отключения лога нада закоментировать или удалить строку (возможно незначительно уменьшит нагрузку на CPU):
Код
echo "$MHZ - $CPU" >> /tmp/zSHapmd

В 5й версии это №95.

Надеюсь кому то будет полезно yu.gif

Сообщение отредактировал VINRARUS - 21.12.2011, 15:16
Прикрепленный файл zSHapmd.7z   ( 2.29 килобайт ) Кол-во скачиваний: 142
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 18.12.2011, 10:07


Термоядерный
********

Группа: Пользователи
Сообщений: 3 257
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1095



Можна запускать прогу с авторана. Желатнльно после гуя. Если в моде есть авторан токо до гуя (то есть прога запускается до появления заставки), то нужно положить в него скрипт с подобным содержимым:
Код
#!/bin/sh
(sleep 45
\путь\до\zSHapmd )&


Сообщение отредактировал VINRARUS - 18.12.2011, 10:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 20.12.2011, 16:59


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



Цитата(VINRARUS @ 18.12.2011, 12:07)
* до гуя

может стОит всё таки переключится на английский язык?

можно вообщем описать механизм работы данной программы?
какие модули нужны для работы?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 21.12.2011, 13:32


Термоядерный
********

Группа: Пользователи
Сообщений: 3 257
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1095



Цитата(IlluminatI @ Вчера, 18:59)
* можно вообщем описать механизм работы данной программы?
какие модули нужны для работы?

ок smile.gif
Шоумодули никакие не нужны, из системных утилит нужны только sed, ну и маловажны date (всего лиш для записи даты при старте проги в лог) и pmtool (для деактивации стандартного apmd).

В основном прога состоит из цикла который повторяется пока существует файл /tmp/zSHapmd.
В начале цикла скрипт спит заданное время (в зависимости от установки при текущей частоте проца). Потом читается первая строчка из файла /proc/stat, и при помощи алгоритма (он состоит из простых арифметических вычислений) узнается средняя загруженность CPU за время которое прошло между 2 чтениями из файла /proc/stat.
Дальше согласно прошлой записи в /sys/mpm/op (сюда пишется частота CPU) скрипт выбирает из 4х действий (взято из 6й версии):
133) спит в начале 1 сек
если загруженность больше 70%, то установить частоту на 399 МГц
266) спит в начале 1 сек
если загруженность больше 80%, то установить частоту на 399 МГц,
или если меньше 20% (за 2 прохода подряд), то установить частоту на 133 МГц
399) спит в начале 2 сек
если загруженность больше 80% (за 2 прохода подряд), то установить частоту на 532 МГц,
или если меньше 20% (за 2 прохода подряд), то установить частоту на 266 МГц
532) спит в начале 5 сек
если загруженность меньше 60% (за 2 прохода подряд), то установить частоту на 399 МГц

Под "установить частоту на ххх МГц" подразумевается прописывание в /sys/mpm/op нужного значения (ххх), и при следующем проходе прога будет щитать что установлена частота ххх МГц, даже если в /sys/mpm/op будет находится другое значение (думаю полезно при патченом ядре).
Если взять к примеру когда частота на 399 МГц, то если загруженность колеблется от 20% до 80%, то частота будет постоянно висеть на 399 МГц, и не будет прыгать.

Ну и после этого цикл повторяется.


Для настройки проги под себя просто нада изменить циферки laugh.gif


ПС: 5я версия отличается от 6й всего лишь 1м проходом (вместо 2х) при повышении частоты с 399 до 532 МГц.

Наверно сейчас вынесу переменные в начало скрипта, и выложу новую версию, чтобы любой легко мог ёго настроить, а то обьяснять дольше. coffee.gif

Добавлено позже (21.12.2011, 17:11):
Выложил в шапку zSHapmd 7й версии.
Теперь кто угодно может легко настроить.
В начале скрипта есть такие параметры:
Код
MAX133=85
MIN266=20
MAX266=80
MIN399=20
MAX399=80
MIN532=65
SLEEP133=1
SLEEP266=1
SLEEP399=2
SLEEP532=5

Знач "MAX133=85" задает максимальную загрузку в % (тут 85%) при частоте в 133МГц. При загрузке выше данной нагрузки будет установлена большая частота.
А "MIN266=20" наоборот задает минимальную загрузку, при 266 МГц, если она меньшая за 20%, то устанавливается меньшая частота.
Если загруженность получилась меньше MAXххх, но больше MINххх, то частота не меняется.
Параметр "SLEEP399=2" задает время за которое берется средняя загруженность CPU. Например если стоит 2 сек, и за первую секунду CPU был загружен на 100%, а за вторую 60%, то средняя за 2 сек будет где то 80%. Надеюсь понятно пожевал wink.gif .
Ну и по анологии думаю разберетесь.
ПС: надеюсь понятно что MIN133 и MAX532 не существует. smile.gif

Сообщение отредактировал VINRARUS - 21.12.2011, 15:19
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 21.12.2011, 17:21


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



cпасибо, интересная идея, возьму на заметку)
думал можно на ezx реализовать, но насколько мне известно apmd на ходу не открутить...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 21.12.2011, 17:53


Термоядерный
********

Группа: Пользователи
Сообщений: 3 257
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1095



Цитата(IlluminatI @ Сегодня, 19:21)
* думал можно на ezx реализовать, но насколько мне известно apmd на ходу не открутить...

а если просто убить apmd? Просто на магиксах apmd отвечает и за подсветку (и просто убить нельзя), а на ezx возможно по другому, не знаю.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VINRARUS
сообщение 27.12.2011, 15:29


Термоядерный
********

Группа: Пользователи
Сообщений: 3 257
Регистрация: 12.12.2009
Из: Чорнобиль
Пользователь №: 211 044

Рейтинг: 1095



Осмелюсь спросить: кто успел по пользоваться данной прогой, кому понравилось\не понравилось и чем?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
WegaW
сообщение 27.12.2011, 17:12


СовершенноЛетний
******

Группа: Почетные МотоФаны
Сообщений: 1 094
Регистрация: 13.6.2006
Из: <<= Киев =>>
Пользователь №: 87 543
Модель телефона: ZN5 (ТМ), L6
Прошивка: Simb.X2, ViViSta 2.5
Победитель конкурса 2008


Настроение:
Ай лайк ту мувит-мувит!



Рейтинг: 1510



Я использовал со своей зинкой Т-мобайл. 5-ю и 6-ю версии использовал по очереди. Все шустро работает, заряд батареи не съедает, тоесть также как и без её использования, на разгоне средствами с прошивки. Прироста скорости также не увидел, как было быстро, так и осталось. Внутрь программы не лез а впечатления сугубо субъективные.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
rheezz
сообщение 29.12.2011, 9:03


Новичок
*

Группа: Пользователи
Сообщений: 4
Регистрация: 29.7.2010
Пользователь №: 218 957
Модель телефона: E398 Z6 EM30 ZN5
Прошивка: MoserPack v0.4

Рейтинг: 1



I already execute 'em several times, but there is never exist "zSHapmd" in /tmp folder. How to do? I use ZN5
Sorry for using English

Сообщение отредактировал rheezz - 29.12.2011, 9:09
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
outlaw1313
сообщение 29.12.2011, 9:34


Мастер
****

Группа: Пользователи
Сообщений: 285
Регистрация: 18.1.2010
Из: Ульяновск
Пользователь №: 212 719
Модель телефона: Motorola ZN5
Прошивка: outlaw1313 mod 1.09


Настроение:
На волне...



Рейтинг: 350



Собственно частота 532 на зинке у меня так и не включилась, а телефон почему-то зависал..
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zSHapmd v11, скриптовой аналог стандартному Apmd (управляет частотой процессора) · Motorola на Linux · Forum
 

3 страниц V  1 2 3 >
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 22.5.2019, 2:41

Форум живёт: