Subcore является корневым демоном, который использует различные датчики в устройстве для систематического применения различных профилей использования. Цель состоит в том, чтобы достичь баланса, основанного на рабочей нагрузке пользователя, а не полагаясь на губернатор ЦП, чтобы сделать предположения о текущей рабочей нагрузке.
Subcore гласит и пишет в многочисленные файлы ядра, чтобы определить, какой профиль разместить Устройство в. Эти интерфейсы включают в себя:
• Active CPU Load
• Доступные CPU Cores
• Доступные губернаторы CPU
• Доступные частоты процессоров
• Доступные ГПУ
• Доступные частоты GPU BR> • Текущая емкость аккумулятора
• состояние батареи (зарядки / разгрузка)
• Государство-экран
◦ Государственный уведомление (основной выбор)
◦ Power Suspend (вторичный выбор)
◦ Интерфейс кадров ( Выбор третичного выбора)
• Доступное устройство памяти устройства
• Max Device Memory
• Доступные планировщики IO
• Block ReadaHead
• Block Smaptiness
• Блокировка кэш-памяти
• Случайная энтропия
• Block Overcommit
• Block Page Cluster
• Блок Грязные Centisecs
• Блок LMK
• Блокировка ноутбука
• Блок KSM
• Уникальные сгенерированные интерактивные накладки
• Уникальные сгенерированные накладные накладки
без какой-либо формы прогнозирования пользователей, игра может начать отставать на мгновение на нагрузок на сцене погрузки, где проваливает требование нагрузки. Чтобы противодействовать этому, Subcore реализует алгоритм прогнозирования пользователя, который пытается поддерживать текучесть в тяжелых приложениях, даже в моменты низкой нагрузки. Он работает путем определения повторных средних нагрузки и спать дольше, когда нагрузка является последовательной.
Поскольку Subcore - это инструмент низкого уровня (все же пользователя), он имеет прямой доступ к статистике батареи. При зарядке (и на экране) Subcore повысит вашу производительность в самый высокий профиль выполнения, чтобы пользователь испытывал соответствие пользовательского интерфейса / UX, игнорируя ограничение энергии. Кроме того, когда Subcore обнаруживает, что устройство находится на 15% батареи или меньше, он будет половина LoadAvg, что означает, что он требует вдвое больше нагрузки CPU для ввода следующего профиля. Аналогично, при 5% аккумуляторной батареи или менее подсор блокирует устройство в самый низкий профиль, который оптимизирован для глубокого сна или простоя, жертвуя кусочками производительности к аккумулятору. Эта настройка может быть отключена путем переключения «отключить осведомление об отключении энергии» в приложении Subcore GUI.
Subcore реализует новую концепцию, которую я называю RUPG. Что делает Subcore Special - это тот факт, что он совместим с по существу всеми устройствами. Во время выполнения Subcore изначально собирает кучи данных для генерации многочисленных профилей, специфичных устройством на основе различных факторов. Эти сгенерированные профили сильно оптимизированы для каждого устройства, так что каждый пользователь достигает наиболее эффективного опыта программного обеспечения для доступного аппаратного / программного обеспечения. Эти профили затем сохраняются в памяти и помечены для удаления при выходе подкоров. Некоторые примеры, где используются RUPG, находится в создании устройства Special Offsets LMK (MINFREE). Каждое устройство имеет другой размер оперативной памяти, поэтому Subcore должен вручную рассчитать оптимальные размеры LMK MINFREE для каждого вектора смещения (Vight_light -> Very_Gressive). Подкор также использует RUPG в производстве управляющих настраиваемых тюков. Каждое устройство имеет разную частоту CPU CPU, которая должна быть учтена. Эти профили генерируются автоматически по двоина, поэтому пользователь не должен настроить ничего самостоятельно.
Subscore приводит к заметному улучшению срока службы батареи, во время экрана и экрана.
Я хотел бы лично поблагодарить всех своих тестеров, чтобы пожертвовать свои телефоны в моем коде. Каждый из них помогал в стабильности самой программы.
@dotmiracle
@efranz
@ Kdrag0n
@ Ashley117
@ abhirams2020
@mountase_halak
> Для подсора правильно работать, пожалуйста, убедитесь, что следующие вещи являются правильными:
• Убедитесь, что Subcore всегда предоставляется root.
• Используйте режим низкого памяти, если устройство не имеет ZRAM или zcache, или если вы заметите Приложения, сбой / не открывающиеся.
Связаться со мной в любое время для отзывов.
Gmail: Tylyernij@gmail.com
Telegram: @tytydraco
xda: @tytydraco
- Refactor low-memory mode to Memory-Aware
- Improve memory-aware RAM management (increase cache pressure)