SUCCORE เป็นรูต daemon ที่ใช้เซ็นเซอร์ต่าง ๆ ในอุปกรณ์เพื่อใช้โปรไฟล์การใช้งานที่แตกต่างกันอย่างเป็นระบบ เป้าหมายคือเพื่อให้เกิดความสมดุลตามปริมาณงานของผู้ใช้แทนที่จะพึ่งพาผู้ว่าราชการ CPU เพื่อสร้างสมมติฐาน BIAS เกี่ยวกับภาระงานปัจจุบัน
ผู้รับเหมาเก็บเอกสารย่อยอ่านและเขียนไปยังไฟล์เคอร์เนลจำนวนมากเพื่อกำหนดโปรไฟล์ที่จะวาง อุปกรณ์อินเตอร์เฟสเหล่านี้รวมถึง:
•โหลด CPU ที่ใช้งานอยู่
• CPU Cores ที่มีอยู่
•ผู้ว่าการ CPU ที่มีอยู่
•ความถี่ CPU ที่มีอยู่
•มีโหลด GPU ที่มีอยู่
•ความถี่ GPU ที่มีอยู่
•ความจุของแบตเตอรี่ปัจจุบัน•สถานะแบตเตอรี่ (การชาร์จ / การปล่อย)
•สถานะหน้าจอ
◦ State Notifier (ตัวเลือกหลัก)
◦ Power Suspend (ตัวเลือกรอง)
◦ FrameBuffer อินเตอร์เฟส ( ตัวเลือกระดับตติยภูมิ)
•หน่วยความจำอุปกรณ์ที่มีอยู่
•หน่วยความจำอุปกรณ์สูงสุด•มีตัวกำหนดเวลา IO ที่มีอยู่
•บล็อก Readahead
•บล็อก Swappiness
•บล็อกความดันแคชบล็อก
•บล็อกการปันส่วนที่สกปรก
•เอนโทรปีสุ่ม
•บล็อก Overcommit
•บล็อก Page Cluster
•บล็อก Dirty Centisecs
•บล็อก LMK
•บล็อกแล็ปท็อปบล็อก
บล็อก KSM
Tunables แบบอินเทอร์แอคทีฟที่สร้างขึ้นอย่างไม่ซ้ำกัน
• Tunables Schedutil ที่สร้างขึ้นอย่างไม่ซ้ำกัน
หากไม่มีการทำนายผู้ใช้บางรูปแบบเกมสามารถเริ่มล่าช้าสักครู่ในระหว่างการโหลดฉากที่ต้องการความต้องการโหลด หากต้องการตอบโต้สิ่งนี้ย่อยจึงใช้อัลกอริทึมการทำนายผู้ใช้ที่พยายามรักษาความลื่นไหลในการใช้งานหนักแม้ในช่วงเวลาของการโหลดต่ำ มันใช้งานได้โดยกำหนดค่าเฉลี่ยโหลดซ้ำ ๆ และนอนหลับอีกต่อไปเมื่อภาระที่สอดคล้องกัน
เนื่องจากเครื่องมือย่อยเป็นเครื่องมือระดับต่ำ (แต่ผู้ใช้) จึงมีการเข้าถึงสถิติแบตเตอรี่โดยตรง เมื่อทำการชาร์จ (และหน้าจอ) ย่อยจะช่วยเพิ่มประสิทธิภาพของคุณให้กับโปรไฟล์ที่มีประสิทธิภาพสูงสุดเพื่อให้แน่ใจว่าผู้ใช้สัมผัสกับความสอดคล้อง UI / UX ไม่สนใจข้อ จำกัด ด้านพลังงาน นอกจากนี้เมื่อ SUCCORE ตรวจพบอุปกรณ์อยู่ที่แบตเตอรี่ 15% หรือน้อยกว่าจะมีครึ่งหนึ่งของ Loadavg ซึ่งหมายความว่าต้องใช้โหลด CPU สองเท่าเพื่อป้อนโปรไฟล์ถัดไป ในทำนองเดียวกันที่แบตเตอรี่ 5% หรือน้อยกว่าตู้เก็บเอกสารย่อยจะล็อคอุปกรณ์ลงในโปรไฟล์ต่ำสุดซึ่งได้รับการปรับให้เหมาะสมสำหรับการนอนหลับลึกหรือไม่ได้ใช้งานการเสียสละประสิทธิภาพของแบตเตอรี่ การตั้งค่านี้สามารถปิดการใช้งานโดยการสลับ "ปิดใช้งาน Power Aware" ในแอปย่อย GUI
ย่อยมีแนวคิดใหม่ที่ฉันเรียก RuPG สิ่งที่ทำให้ SUCCORE พิเศษคือข้อเท็จจริงที่ว่ามันเข้ากันได้กับอุปกรณ์ทั้งหมด ในช่วงรันไทม์ย่อยทำให้เกิดการรวบรวมข้อมูลจำนวนมากเพื่อสร้างโปรไฟล์เฉพาะอุปกรณ์จำนวนมากตามปัจจัยต่าง ๆ โปรไฟล์ที่สร้างขึ้นเหล่านี้ได้รับการปรับให้เหมาะสมอย่างมากสำหรับแต่ละอุปกรณ์เพื่อให้ผู้ใช้แต่ละคนประสบประสบการณ์ซอฟต์แวร์ที่มีประสิทธิภาพที่สุดสำหรับฮาร์ดแวร์ / ซอฟต์แวร์ที่มีให้ โปรไฟล์เหล่านี้จะถูกบันทึกไว้ในหน่วยความจำและมีการทำเครื่องหมายสำหรับการลบเมื่อไม่มีการเก็บเกี่ยว ตัวอย่างบางส่วนที่ RuPG ถูกนำไปใช้อยู่ในรุ่นของอุปกรณ์ LMK ที่เฉพาะเจาะจง (Minfree) แต่ละอุปกรณ์มีขนาด RAM ที่แตกต่างกันดังนั้น SUCCORE จะต้องคำนวณขนาด LMK Minfree ที่เหมาะสมสำหรับแต่ละเวกเตอร์ออฟเซ็ต (very_light -> very_aggressive) SUCCORE ยังใช้ RUPG ในการผลิตเครื่องปรับเสียงผู้ว่าราชการ แต่ละอุปกรณ์มีตารางความถี่ SOC CPU ที่แตกต่างกันซึ่งจะต้องคำนึงถึง โปรไฟล์เหล่านี้จะถูกสร้างขึ้นโดยอัตโนมัติโดยไบนารีดังนั้นผู้ใช้จึงไม่จำเป็นต้องปรับอะไรตัวเอง
ผลคูชอภาพส่งผลให้เกิดการปรับปรุงอายุการใช้งานแบตเตอรี่ที่เห็นได้ชัดเจนในระหว่างหน้าจอทั้งสองบนและปิดหน้าจอ
ฉันต้องการขอบคุณผู้ทดสอบทั้งหมดของฉันสำหรับการเสียสละโทรศัพท์กับรหัสของฉัน แต่ละคนและทุกคนได้รับความช่วยเหลือในความมั่นคงของโปรแกรมของตัวเอง
@Dotmiracle
@Afranz
@ KDRAG0N - @ Ashley117
@ Abhirams2020
@Mountaser_Halak
> เพื่อให้บริการย่อยสามารถทำงานได้อย่างถูกต้องโปรดตรวจสอบให้แน่ใจว่าสิ่งต่อไปนี้เหมาะสม:
•ตรวจสอบให้แน่ใจว่ามีร้านย่อยที่ให้แน่ใจว่าได้รับรูทเสมอ
•ใช้โหมดหน่วยความจำต่ำหากอุปกรณ์ไม่มี zram หรือ zcache หรือถ้าคุณสังเกตเห็น แอปหยุดทำงาน / ไม่เปิด
ผู้ใช้สามารถติดต่อฉันได้ตลอดเวลาสำหรับข้อเสนอแนะ
Gmail: Tylernij@gmail.com
โทรเลข: @tytydraco
XDA: @tytydraco
- Refactor low-memory mode to Memory-Aware
- Improve memory-aware RAM management (increase cache pressure)