คิดว่าหลายๆคนที่ใช้แอนดรอยด์ที่ใช้ ICS ขึ้นไปคงเคยเข้าไปซนในส่วนของ Setting กันมาบ้าง แล้วในหัวข้อของ Developer Option จะมีหัวข้อนึงที่น่าสนใจอยู่นั่นก็คือ Force GPU Rendering ซึ่งหลายๆคนคิดว่าถ้าติ๊กตรงนี้แล้วจะทำให้ GPU หรือการ์ดจอประมวลภาพสองมิติแทน CPU ซึ่งจะทำให้เครื่องของเราทำงานได้เร็วขึ้น …… จริงเหรอ? มาลองดูกันครับ

252x450

Force GPU Rendering เจ้าปัญหาอยู่ตรงนี้ไง เคยกดกันมั้ย ?


แล้วมันจะมาอยู่ในส่วน Developer Option ทำไมฟระ ถ้ามันจำเป็นจะมีให้เปิดปิดทำไม – -)|||

เพราะงั้นผมก็เลยไปหาข้อมูลเกี่ยวกับเจ้านี่ดูครับ ว่าจริงๆแล้วมันมีไว้ทำอะไรกันแน่ จึงได้ข้อสรุปมาดังนี้ครับ (ถ้าผิดตรงไหนช่วยติงกันได้นะครับ)

  1. โดยทั่วไปแล้วการประมวลผลเกี่ยวกับภาพต่างๆจะแบ่งออกเป็นสองส่วนคือประมวลผลด้วย Software ซึ่งใช้ CPU คำนวณและส่วนที่สองคือใช้ Hardware ก็คือใช้ GPU นั่นเอง
  2. ภาพสองมิติต่างๆ (2D) จะใช้ CPU และ สามมิติ (3D) จะใช้ GPU ในการประมวลผลครับ แต่อาจจะมีบางกรณีที่ผู้พัฒนาโปรแกรมจะใช้ GPU ในการประมวลผลภาพสองมิติครับ
  3. แต่เมื่อเราติ๊กถูกที่ Force GPU Rendering แล้วจะเกิดอะไรขึ้น ? แอนดรอยด์จะบังคับให้แอพพลิเคชันประมวลผลภาพสองมิติด้วย GPU ถึงแม้ว่าผู้พัฒนาจะไม่ได้เขียนโปรแกรมในส่วนนี้ยังไงล่ะ ซึ่งขั้นตอนนี้ จะทำให้แอพพลิเคชันนั้นรับประทาน Ram ในมือถือของเราเพิ่มขึ้นประมาณ 2-8MB ต่อแอพเพื่อโหลด OpenGL Driver ลงไปประมวลผลด้วย ซึ่งตรงนี้ไม่เป็นผลดีต่อเครื่องที่มีแรมน้อยๆแน่นอน นอกจากนั้นการบริโภคแรมของแอพเพิ่มขึ้น จะทำให้โปรแกรมเบื้องหลังอื่นๆ ถูำก Kill Process บ่อยขึ้น ซึ่งอาจจะทำให้เครื่องช้าลงเนื่องจากจะมีบางแอพ ถูก Kill และ ถูกเรียกใหม่ขึ้นมาบ่อยๆ
  4. แต่ถ้าในกรณีที่เครื่องมีแรมเหลือเฟือล่ะ? แน่นอนว่าในส่วนนี้ GPU จะช่วยแบ่งเบาภาระงานของ CPU ให้ทำงานน้อยลง ทำให้เครื่องดูเร็วขึ้น
  5. แต่!! มันมีปัญหาอยู่อีกตรงที่ว่า การที่เราบังคับให้โปรแกรมประมวลผลสองมิติด้วย GPU โดยที่ผู้พัฒนาไม่ได้เป็นคนกำหนดไว้และยังไม่ได้ทดสอบการนั้นไม่เป็นผลดีนักซึ่งปัญหาที่ผมพบเองโดยตรงคือมีการประมวลผลโดยรวมทั้งหมดของเครื่องที่ช้าลงรวมถึงเครื่องมีอาการงอแงและแสดงภาพผิดเพี้ยนไปจากเดิมแม้ว่าการประมวลผล 2D จะเร็วขึ้นก็ตาม (มีน้องที่ร่วมทดสอบท่านหนึ่งบอกว่าพอปิดแล้วเกมที่เคยกระตุกกับลื่นขึ้นมาทันตาเลยทีเดียว)

    ภาพด้้านซ้ายและขวาคือการ Benchmark เมื่อเปิด/ปิดโหมด Force GPU Rendering

    ซึงสังเกตว่าเมื่อเปิดจะมีคะแนน 2D ที่สูงขึ้นแต่ผลคะแนนรวมกลับลดลง

    สังเกตได้ว่าพอเปิดการทำงานของ GPU Rendering ทำให้การแสดงผลของโปรแกรมผิดเพี้ยนไปจากเดิมพอสมควร

แล้วเราควรทำยังไง ?

พอมาถึงส่วนนี้ทุกคนคงจะรู้ถึงข้อดีและข้อเสียของการเปิดใช้กันแล้วซึ่งในส่วนนี้ผมแนะนำให้ ปิด การใช้งานส่วนนี้พื่อป้องกันข้อผิดพลาดของโปรแกรมบางตัว แต่ถ้ายังยืนยันที่อยากจะใช้อยู่ให้ลองสังเกตเครื่องดูซักนิดครับว่า หลังจากเปิดแล้วเครื่องของคุณมีอาการงอแงไปจากเดิมรึเปล่า ขึ้นอยู่กับวิจารณญาณของทุกคนครับ

สรุปง่ายๆอีกทีก็คือ
– โหมดนี้เป็นการบังคับให้ทุกโปรแกรมประมวลผลภาพด้วย GPU
– โดยทฤษฎีเราเชื่อว่าจะทำให้เครื่องของเราประมวลผลภาพเร็วขึ้น ซึ่งจริงๆมันก็ควรจะเป็นเช่นนั้น
– แต่อย่าลืมหว่าโหมดนี้อยู่ในส่วนของ Development Setting ซึ่งเป็นส่วนของผู้พัฒนา ไม่ใช่ของผู้ใช้ทั่วไป
– หลายๆโปรแกรมที่ไม่รองรับอาจจะแสดงผลผิดพลาดหรือทำงานช้าลง เครื่องคุณอาจจะเอ๋อและช้าลงไปเลย (กำ)
– สำหรับโปรแกรมที่รองรับการทำงานของ GPU Rendering อยู่แล้วจะปรับไม่ปรับตรงนี้ก็ไม่มีผลอะไร
– เพราะฉะนั้นโดยทั่วไปคนธรรมดาอย่างเราๆไม่ควรเปิดใช้โดยไม่รู้ที่มาที่ไปครับผม

ปล. บทความบางส่วนอ้างอิงจาก The truth about hardware acceleration on Android : EXTREME TECH ครับ