หลายคนคงเคยเห็นว่า android ของเรามีตัวเลือกให้ตั้งค่า cpu governor ได้ แต่บางคนก็ไม่เคยเห็น มันขึ้นอยู่กับรอมที่ลงในโทรศัพท์ของเรา

ทบทวน: cpu governor ก็คือ การปรับแต่งให้เครื่องเราลื่นขึ้น/น้อยลง แลกกับการบริโภคแบตเตอรี่ที่มากขึ้น/น้อยลง คล้ายๆ กับ concept ของ profile นั่นเอง

บังเอิญวันนี้ผมสงสัยว่าค่า governor แต่ละแบบมันต่างกันยังไง จึงไปค้นอากู๋ แล้วเจอคำตอบ จึงถือโอกาสมาเล่าให้เพื่อนๆ ฟังด้วยเลย

  • performance = บังคับ cpu ให้ทำงานที่ความเร็วสูงสุดตลอดเวลา สูบแบต แต่เร็วปรี๊ด
  • smartass = มาใหม่สุด คล้ายกับ interactive แต่มีการปรับปรุง code ใหม่ทั้งหมด ให้มีประสิทธิภาพมากขึ้น มีผู้ให้ความเห็นว่า smartass คือ governer ที่ดีที่สุดในตอนนี้ โดยสามารถตอบสนองได้ดีกว่าการปรับค่าความเร็ว min- max แบบเดิมๆ ส่วนเรื่องพลังงานยังไม่มีการยืนยันว่าประหยัดกว่า แต่จากการสังเกตพบว่า เครื่องที่ใช้ smartass มักจะทำงานอยู่ที่ความเร็ว cpu ต่ำเป็นเวลานานกว่า นั่นหมายถึงว่าน่าจะกินพลังงานน้อยกว่าในทางทฤษฎี
  • interactive = พึ่งมีไม่นาน เป็นการเปลี่ยนวิธีคิดในการเร่งความเร็ว cpu ใหม่ โดยจากเดิมที่ cpu จะกำหนดค่าความเร็วไว้ล่วงหน้าจากปริมาณงานที่เข้าคิวรออยู่ เปลี่ยนเป็นรอดู workload ของ cpu ก่อน ใช้เวลาซักประมาณ 1-2 tick ของ cpu ถ้า load เป็น 100% ก็จะเร่งความเร็วขึ้นไปเรื่อยๆ จนกว่าจะถึงค่าความเร็วสูงสุดหรือ load ลดลงเหลือไม่ถึง 100% สำหรับเวลา scale down ก็เช่นกัน จะไม่พรวดพราดลดความเร็วลงต่ำสุด โดยจะรอดูซักแปบนึงแล้วค่อยลดความเร็วไปเรื่อยๆ
  • ondemand = เป็นค่ามาตรฐานของ android ทุกเครื่อง ความเร็วของ cpu จะเปลี่ยนแปลงตามความหนักเบาของงานที่ทำอยู่ โดยจะวิ่งอยู่ระหว่าง ค่า min – max ที่กำหนดโดย kernel และ cpu ของเครื่องนั้นๆ เมื่อใดก็ตามที่ โปรแกรมต้องการพลังในการประมวลผล ความเร็ว cpu จะกระโจนไปที่ค่า max อย่างรวดเร็ว ปัจจุบันยังถือเป็นค่าที่แนะนำให้ใช้ เพราะยอมรับกันว่าเป็นจุดที่เกิดประสิทธิภาพสูงสุด (ดีกว่า conservative และ userspace)
  • conservative = คล้ายกับ ondemand แต่ความเร็วของ cpu จะไม่กระโจนพรวดเดียวไปที่ค่า max โดยจะค่อยๆ ไต่ระดับขึ้นไป ผลในทางทฤษฎีคืออายุการใช้งานแบตนานขึ้น แต่เครื่องอาจจะตอบสนองช้าลงไปบ้าง ปัจจุบันไม่ค่อยนิยม
  • userspace = คือการที่ยอมให้ application ต่างๆ กำหนดค่าความเร็ว cpu ที่ต้องการได้ ในปัจจุบันไม่เป็นที่นิยม
  • powersave = บังคับ cpu ให้ทำงานที่ความเร็วต่ำสุดตลอดเวลา

หมายเหตุ: ผมแปลมานะครับ และก็ไม่ใช่เซ๊ยน linux ถ้ามีจุดผิดก็เชิญผู้รู้จริงคอมเมนท์ได้ครับ

ที่มา: เยอะครับ หลักๆ ก็เวปบอร์ดที่เกี่ยวกับโปรแกรม SetCPU