Governors (Governor — управляющий) Что такое Governors?
Рассмотрим CPU (центральный процессор) телефона Optimus Black. Что ж, данный процессор работает на разных частотах (стандартные: 300, 600, 800 и 1000 Mhz) и, как правило, мы говорим про частоту процессора 1 Ghz (1000 Mhz). Потому, что это максимальная частота на которой процессор работает со 100% стабильностью.
И так, governor - это «CPUFreq driver» (управляет частотой процессора). Как можно предположить из названия, эта программа определяет когда работать процессору на максимальной мощности/частоте, когда на минимальной или на средних частотах и как быстро переключаться от минимальных частот на максимальные, должен ли процессор работать на пределе стабильности и обеспечивать плавность работы всей системы. Должен ли в простое процессор сбрасывать частоту до 200 Mhz для сохранения заряда батареи. Это и многое другое и есть - Governors. Существует множество пресетов (настроек) Governors. Некоторые для одно-ядерных процессоров, другие для двух-ядерных (про которые я даже не хочу говорить). В прошивке вы можете найти 5 пересетов (Governors), в ядре Quasar намного больше. Большинство пользователей андроид устройств и пользователей сайта xda-developers.com (примечание переводчика: там обитает автор) даже и не знают половины пресетов которые я перечислю ниже, т. к. они относятся не столько к стандартному ядру андроида, сколько к ядру Quasar. Только один пресет общий, тот который сделал мой хороший португальский знакомый franciscofranco.
Список Governors с кратким описанием: 1) Ondemand Ondemand — выбор по-умолчанию из-за сбалансированы настроек, которые предлагают хороший компромисс между расходом батареи и производительностью. Однако, у него нет профиля для спящего режима и он немного проигрывает в производительности для смартфонов.
2) Powersave Powersave — выставляет максимальную частоту равную минимальной. Не подходит для повседневного использования по понятным причинам. Лучше использовать «SetCPU» «screen-off»-профиль в комбинации с Ondemand.
3) Userspace Userspace — позволяет вам вручную выставлять частоту. Честно говоря, я никогда не слышал, что бы кто-то использовал этот профиль. Я совершенно не знаю, как он управляет питанием, работает ли он вообще и его особенности.
4) Conservative Conservative — это замедленный Ondemand, когда дело касается управлением частоты процессора. Например, когда вы включите телефон и начнёте с ним работать, Ondemand увеличит частоту до тех пора пока она не достигнет максимума на скорости «х». Conservative — в этой же ситуации сделает тоже самое, но скорость будет «х/2». Чем больше увеличивается частота, тем больше идёт расход батареи. Подводя итог, можно сказать, что Conservative меньше подходит для производительности и больше для сохранения батареи.
5) Performance Если Powersave профиль принять за «Инь», то это «Янь» (примечание переводчика: две противоположности). Он устанавливает минимальную частоту равную максимальной. Таким образом телефон всегда работает на максимальной производительности. Обычно это используют с профилями «SetCPU» на случай зарядки или подключения к компьютеру. По понятным причинам не может использоваться повседневно.
6) Interactive Если Conservative — медленный аналог Ondemand, то Interactive — быстрый. Подъём частоты происходит немного быстрее, т.ч. работа телефона будет казаться немного быстрее с небольшим увеличением расхода батареи. Это один из популярных профилей за прошедший год.
7) InteractiveX Как видно из названия, это Interactive с некоторыми модификациями от imoseyon. Теперь в место того, что бы использовать «грязный» профиль «SetCPU» для удержания минимальной частоты. Когда телефон в режиме ожидания, этот профиль будет делать тоже самое, только правильно и с лучшем подъёмом частоты от минимума к максимуму, когда телефон будет просыпаться. В итоге, это профиль с производительностью Interactive и меньшим расходом батареи.
8) Smartass Это один из невероятно популярных профилей, который стал один из избранных для «Q3-4 2011» (примечание переводчика: без понятия что это такое). Smartass основан на Interactive, но некоторыми модификациями, а так же встроенными профилями. Недавно Erasmux выпустил версию v2, которая, по словам пользователей, довольно хороша. Возможно, это лучший профиль для ядра Quasar на данный момент наряду с Minmax.
9) Smoothass Ещё одна «жемчужина» от Erasmux. На сколько мне известно, это «Smartass v1», настроенный на более агрессивное изменение частоты, что означает больше производительности и стабильности, потребляющий чуть меньше батарею.
10) BrazilianWax Кто-нибудь может меня поправить, если я ошибаюсь, но это в принципе тот же Smoothass.
11) SavagedZen Очередная разновидность Smartass ядра со множеством изменений направленных, как на экономию батареи, так и на производительность. И, что по мне, так это удалось. Я пользовался этим в последних устройствах и достаточно не плохо смотрелось. Это достаточна не плохая сбалансированная настройка.
12) Minmax Этот пресет был очень приятной неожиданностью. Хоть это и переделка Conservative, но не исключено, что самая лучшая переделка из всех. Может и чуть хуже работает на экономию батареи, чем «Smartass v2», но я обязан своим опытом в плане азов данному пресету, по этой причине я установил этот профиль по-умолчанию для прошивки Nova. Это был мой любимый профиль пока я не отдал предпочтение Smartass v2.
13) Scary Это достаточно странный пресет. Оно основан на Conservative, который медленней изменяет частоту, чем Ondemand, но опять же у него характеристики Smartass, одного из быстрых пересетов в плане изменений частот. Я слышал, что некоторым он нравится, но я никогда не пробовал его.
Итог (по-моему скромному мнению): Батарея: 1ое место - Smartass2 | 2ое место - InteractiveX | 3е место - SavagedZen Производительность: 1ое место - Minmax | 2ое место - Smartass2 | 3е место - SavagedZen
I/O Scheduler
И так, что такое I/O Scheduler?
Планировщик операций Ввод/Вывод (I/O Scheduler) — этот термин используется в компьютерной системе для определения порядка блоков операций ввода/вывода, которые будут добавлены в систему хранения данных. I/O планировщик иногда называют «дисковым планировщиком».
I/O планировщики могут иметь множество назначений, в зависимости от задачи I/O планировщика. Некоторые распространённые задачи: - для сокращения времени, затрачиваемого для поиска данных на жёстком диске. - для изменения приоритета процессов операций ввода/вывода. - для распределения нагрузки жёсткого диска разными процессами. - для гарантий того, что некоторые процессы будут выполнены до определённого срока.
Тут не так много можно предложить, когда дело доходи до I/O планировщиков. На первый взгляд нет такой гибкости настроек, как у Governors, но поверьте мне там есть, что покрутить. К примеру, одно из улучшений, с которым вы сталкиваетесь, связанно с открытием и закрытием приложений.
Список I/O Schedulers с кратким описанием: 1) Noop Noop — на самом деле не так плох. Это просто I/O планировщик и когда дело касается андроида, чем проще, тем лучше. Я думаю в G1 знали, что делали, когда установили Noop I/O планировщиком по-умолчанию.
2) Anticipatory Я понятия не имею, насколько это подходит для андроид устройств. Он отключен, как в заводском ядре так и в Quasar, т.к. я никогда не слышал, что бы кто-то им пользовался или рекомендовал к использованию. Я читал, что это больше подходит для серверов.
3) CFQ Ну что же, CFQ для I/O планировщиков сродни Ondemand для Governors. Он самый сбалансированный и нацелен на производительность в большинстве случаев. Однако, в андроиде некоторые вещи работают иначе, поэтому это не самый подходящий I/O планировщик. Существует множество настроек, распространённых на XDA (примечание переводчика: сайт и форум, где обитает автор) для улучшения этой штучки.
4) Deadline Deadline — это, на самом деле, достаточно популярный наряду с BFQ. Он применяется в некоторых известных ядрах, к примеру в Netarchy для Nexus S. Однако, даже не смотря на то, что он лучше CFQ для аднроид устройств, он всё же проигрывает в сравнение с VR.
5) VR VR — это хороший I/O планировщик с элементами «ограничения по времени». Возможно лучший для MTD андроид устройств, так же он используется известных ядрах, к примеру в IntersectRaven для Nexus One. Не исключено. Что это единственный планировщик, который может набрать максимальное значение в тестах, но так же и самый не стабильный. Его производительность не стабильна, она может показать максимум или опуститься ниже плинтуса. Но когда он работает на пределе, он самый лучший.
6) Simple Как видно из названия, Simple I/O — один из простейших. Помните я упоминал, что I/O планировщики для андроид устройств, чем проще, тем лучше? Это тот самый случай. Особенно для EMMC устройств. Он надёжен, не так хорош, как VR на максимуме, но тем немение один из лучших по производительности. На данный момент он установлен по-умолчанию в ядре Quasar.
7) BFQ А вот и он. Многие ошибочно полагали, что это лучший I/O планировщик, который был самым популярным. Он основан на CFQ, но уступает в производительности VR или Simple, даже если это версия BFQ v2. Не включено в ядро Quasar потому, что ацтой.
Итог (по-моему скромному мнению): Производительность: 1ое место - VR Надёжность: 1ое место - Simple