테크 지식
안드로이드 CPU 가버너(Governors)
CPU 가버너란?
안드로이드 CPU 가버너는 사용자가 장치에 요구하는 조건에 따라서 CPU의 동작 빈도를 높이거나 낮추는 방법을 제어합니다. 특히 가버너는 기기의 성능과 배터리 수명에 큰 영향을 주기 때문에 스마트폰과 태블릿에서 매우 중요합니다.
- 가버너는 커스텀 롬의 기본 기능 또는 앱을 통해서 변경 할 수 있으며, 루팅 및 가버너를 변경 할 수 있도록 되어있는 커널이어야 가능합니다.
가버너의 종류
- OnDemand
- Linux 커널의 최초이가 가장 오래된 가버너입니다.
- CPU 사용량에 따라서 필요한 만큼 CPU 클럭 주파수를 상승시시킵니다.
- 반응성 문제가 있어 순간 클럭이 올라가더라도 버벅이는 경우가 있습니다.
- 제조사에서는 테스트 및 신뢰성이 높아서 과거에 많이 사용했지만, 지금은 Google의 Interactive 가버너로 대체되고 있습니다.
- OnDemandX
- Performance
- 성능 중점으로 CPU 동작 빈도를 최대로 고정시킵니다.
- Powersave
- Performance 와 반대로 CPU 동작 빈도를 최저로 조절시켜 배터리 수명을 향상시킵니다.
- Conservative
- 낮은 클럭 주파수에서 높은 클럭 주파수로 단계적으로 상승시킵니다.
- 사용자가 지정한 최소 클럭 주파수에 따라서 좋지 않은 성능을 제공 할 수 있습니다.
- 배터리 수명은 좋을 수도 있습니다.
- Userspace
- 사용자가 애플리케이션 별로 CPU 동작 빈도를 조절 할 수 있습니다. 주로 서버 또는 PC 에서 많이 사용됩니다.
- Min Max
- Interactive
- 개발자 또는 사용자가 설정한 타이머에 따라서 클럭 주파수를 조절합니다.
- CPU 를 사용하게되면 바로 최고 클럭 주파수으로 올라가고, 이후 타이머에 따라서 단계적으로 클럭 주파수를 낮춥니다.
- InteractiveX
- Smartass
- 필요한 만큼 클럭 주파수를 올립니다.
- 대체적으로 낮은 클럭을 유지합니다.
- SmartassV2
- Smartass 를 개량한 버전입니다.
- Smartass 보다 반응성 및 성능이 뛰어납니다.
- Scary
- Lagfree
- Smoothass
- Brazilianwax
- SavageZen
- Lazy
- Lionheart
- LionheartX
- Intellidemand
- Faux 님이 개발한 가버너입니다.
- GPU 사용에 따라서 다르게 동작합니다.
- GPU 가 바쁜 경우 Ondemand 처럼 동작합니다.
- GPU 가 유휴상태 또는 보통상태 일 경우 배터리 절약을 위해서 기기/커널이 지원하는 주파수 대역에 따라서 조절합니다.
- 즉 GPU 의 상태에 따라서 조절됩니다.
- Faux 님은 현재 더 나은 최적화 성능을 위해서 intelliactive 를 추천합니다.
- Hotplug
- Core 의 On/Off 기능이 탑제된 가버너입니다.
- Badass
- Wheatley
- Lulzactive
- SmartassV2 와 비슷하지만, 더 많은 단계로 클럭을 조절합니다.
- PegasusQ/PegasusD
- HotplugX
- Abyssplug
- MSM DCVS
- Intelliactive
- Google Interactive 를 기반으로 합니다.
- 입력 드라이버의 자체 부스트 기능 제공 (PowerHAL 지원 필요 X)
- 2단계 주파수 관리 (직접적으로 최대 주파수로 점프)
- 오프라인 CPUS를 점검하고 불필요한 검사를 단락, 코드 실행 경로 향상 => CPU 핫 플러깅을 피할 수 있습니다.
- Adaptive
- Nightmare
- ZZmove
- Sleepy
- Hyper
- SmartassH3
- SLP
- NeoX
- ZZmanX
- OndemandPlus
- Dynamic Interactive (DynInteractive)
- Smartmax
- Ktoonservative/KtoonservativeQ
- Performance may cry (PMC)
- Dance Dance
- AbyssPlugv2
- IntelliMM
- InteractivePro
- Slim
- Ondemand EPS
- Smartmax EPS
- Uberdemand
- Yankactive
- Impulse
- Bacon
- Optimax
- Preservative
- Touchdemand
- ElementalX
- Bioshock
- Blu_active
- Umbrella_core
- ConservativeX
- Hyrdxq
- DevilQ
- Yankasusq
- Darkness
- Alucard
- Hellsactive
- Ragingmolasses
- Virtuous
- Sakuractive
- InteractiveX v2
- Alessa
- GallimaufryX
- AggressiveX
- Tripndroid
- Wrexy
- Xperience
- Stockdemand
- Zeneractive
- InteractiveB
- Aggressive
- IntellidemandV2
- Boostactive
- Wave
- Barry-Allen
- Arteractive
- Precognition (PrecoGOV)
- Mythx_plug
- PegasusQPlus
- Yankdemand
- HyperX
- Despair
- Electroactive
- Electrodemand
- Lionfish
- Interextrem
- Cafactive
- Lightning
- ThunderX
- sched-DVFS
- Intel
- Frankenstein
- Cyan
- TheSSJactive
- Chill
- sprdemand
- Kraken
- Ironactive
- Nebula
- Relaxed
- Crazyactive
- thenewbeginning
- Cultivation
- Schedutil