Sottocore è un daemon radicale che utilizza vari sensori nel dispositivo per applicare sistematicamente diversi profili di utilizzo. L'obiettivo è quello di raggiungere un equilibrio basato sul carico di lavoro dell'utente, piuttosto che fare affidamento sul governatore della CPU per effettuare ipotesi di BIAS sul carico di lavoro corrente.
Subtorcore legge e scrive a numerosi file del kernel per determinare quale profilo posizionare il profilo Dispositivo in. Queste interfacce includono:
• Carico CPU attivo
• Disponibile CPU Cores
• Disponibili i governatori della CPU
• Frequenze della CPU disponibili
• Carica GPU disponibile
• Frequenze GPU disponibili
• Capacità della batteria corrente
• Stato della batteria (caricamento / scarico)
• Stato dello schermo
◦ Notificatore di stato (scelta principale)
◦ Power Sospend (scelta secondaria)
◦ Interfaccia framebuffer ( scelta terziaria)
• Memoria Disponibile dispositivo
• Memoria del dispositivo MAX
• Disponibile IO Schedulers
• Block ReaCead
• Block Swappiness
• Block Swappiness
• Block Cache Pressure
• Blocca le razioni sporche
• entropia casuale
• Block Overcommit
• Block PAGE Cluster
• Block sporco centisecs
• Block lmk
• Block laptop Modalità
• Block KSM
• Sintonizzabili interattili generati in modo univoco e • Generato sintonizzabili generati in modo univoco
Senza qualche forma di previsione dell'utente, un gioco potrebbe cominciare a ritardare per un momento durante una scena di carico, dove i requisiti di carico sono venuti. Per contrastare ciò, Sottocchezza implementa un algoritmo di previsione dell'utente che tenta di mantenere la fluidità in applicazioni pesanti, anche durante i momenti di basso carico. Funziona determinando medie di carico ripetitivo e dormono più a lungo quando il carico è coerente.
Poiché Subtorcore è uno strumento di basso livello (eppure UseseSpace), ha accesso diretto alle statistiche della batteria. Durante la ricarica (e lo schermo), Subcore aumenterà le prestazioni al profilo più alto per garantire che l'utente sperimenta la conformità UI / UX, ignorando la limitazione dell'energia. Inoltre, quando Subcore rileva che il dispositivo è alla batteria del 15% o meno, sarà la metà del LoadAVG, il che significa che richiede il doppio del carico della CPU per immettere il profilo successivo. Allo stesso modo, alla batteria al 5% o meno, la sottomotore serra il dispositivo nel profilo più basso, ottimizzato per il sonno profondo o il minimo, sacrificando un pezzo di prestazione alla batteria. Questa impostazione può essere disabilitata attivando "Disabilita potenza consapevole" nell'app della GUI sottocore.
Subcore implementa un nuovo concetto che chiamo rupp. Ciò che rende il subtorcore speciale è il fatto che è compatibile con essenzialmente tutti i dispositivi. In runtime, subcore inizialmente raccoglie cumuli di dati per generare numerosi profili specifici del dispositivo in base a vari fattori. Questi profili generati sono fortemente ottimizzati per ciascun dispositivo, in modo che ogni utente raggiunga l'esperienza software più efficiente per l'hardware / software disponibile fornito. Questi profili vengono quindi salvati in memoria e sono contrassegnati per la cancellazione quando si rivolge a confermare. Alcuni esempi in cui viene utilizzato RUPG è nella generazione di offset LMK specifici del dispositivo (minfree). Ogni dispositivo ha una dimensione della RAM diversa, quindi subcore deve calcolare manualmente le dimensioni Optimum LMK MinFree per ogni vettore offset (Very_light -> molto_ggressivo). Sottocore utilizza anche Rupg nella produzione dei sintonizzabili del governatore. Ogni dispositivo ha una tabella di frequenza della CPU SOC diversa, che deve essere contabilizzata. Questi profili vengono generati automaticamente dal binario, quindi l'utente non ha bisogno di sintonizzare nulla da soli.
Subcore si traduce in un notevole miglioramento della durata della batteria, durante lo schermo acceso e dello schermo.
Mi piacerebbe ringraziare personalmente tutti i miei tester per sacrificare i loro telefoni al mio codice. Ognuno di loro assistito nella stabilità del programma stesso.
@Dotmiracle
@efranz
@ kdrag0n
@ Ashley117
@ Abhirams2020
@mountaser_halak
Per sottomettere di funzionare correttamente, assicurati che le seguenti cose siano corrette:
• Assicurarsi che il sottomotore sia sempre concesso a root.
• Utilizzare la modalità a bassa memoria se il dispositivo non ha zram o zcache o se si nota App che si schianta / non si apre.
Gli utenti possono contattarmi in qualsiasi momento per il feedback.
Gmail: Tylernij@gmail.com
Telegram: @tytydraco
XDA: @TytyDraco
- Refactor low-memory mode to Memory-Aware
- Improve memory-aware RAM management (increase cache pressure)