เพิ่มประสิทธิภาพหน่วยความจำของแอป

หน่วยความจำเป็นทรัพยากรที่มีค่าในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ใดๆ แต่จะมีค่ามากยิ่งขึ้นในระบบปฏิบัติการบนอุปกรณ์เคลื่อนที่ซึ่งมักมีข้อจำกัดด้านหน่วยความจำจริง โดยเฉพาะอย่างยิ่งสำหรับอุปกรณ์ที่มีหน่วยความจำต่ำโดยกำเนิดซึ่งมักพบใน Android (รุ่น Go) มีหลายวิธีที่จะช่วยเพิ่มประสิทธิภาพหน่วยความจำ ในแอปเพื่อให้แอปทำงานได้อย่างราบรื่นในสภาพแวดล้อมเหล่านี้

แนวทางปฏิบัติแนะนำ

ปล่อยหน่วยความจำแคช

หน่วยความจำอาจไม่เพียงพอที่จะให้กระบวนการพื้นหลังทำงานต่อไปได้เหมือนในสภาพแวดล้อมทั่วไป ในกรณีนี้ คุณสามารถใช้ onTrimMemory() เพื่อลดหน่วยความจำที่ไม่จำเป็นออกจากกระบวนการของแอป หากต้องการระบุระดับการตัดปัจจุบันสำหรับแอปของคุณให้ดีที่สุด ให้ใช้ ActivityManager.getMyMemoryState(RunningAppProcessInfo) และเพิ่มประสิทธิภาพหรือตัดทรัพยากรที่ไม่จำเป็นออก ตัวอย่างเช่น คุณสามารถลดการใช้หน่วยความจำที่ไม่จำเป็นจากนิพจน์ การค้นหา แคชการดู หรือส่วนขยายที่เปิดได้ เพื่อลดจำนวนครั้งที่แอปขัดข้องหรือเกิด ANR เนื่องจากหน่วยความจำเหลือน้อย

การกำหนดเวลางาน

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

หน่วยความจำรั่วไหล

เครื่องมือต่างๆ เช่น Memory Profiler ใน Android Studio และ Perfetto มีไว้เพื่อช่วยค้นหาและลดการรั่วไหลของหน่วยความจำภายในแอปโดยเฉพาะ เราขอแนะนำให้คุณใช้เครื่องมือเหล่านี้เพื่อระบุและแก้ไขปัญหาหน่วยความจำที่อาจเกิดขึ้น เพื่อให้คอมโพเนนต์อื่นๆ ของแอปทํางานได้โดยไม่ต้องเพิ่มภาระให้กับระบบ

เคล็ดลับอื่นๆ

  • รูปภาพขนาดใหญ่หรือ Drawable จะใช้หน่วยความจำในแอปมากกว่า ระบุและเพิ่มประสิทธิภาพบิตแมปขนาดใหญ่หรือแบบเต็มสีเพื่อลดการใช้หน่วยความจำ
  • โปรดลองเลือกตัวเลือกอื่นๆ สำหรับ GIF ในแอปเมื่อสร้างสำหรับ Android (Go Edition) เนื่องจาก GIF ใช้หน่วยความจำมาก
  • คุณลดขนาดไฟล์ PNG ได้โดยไม่เสียคุณภาพของรูปภาพโดยใช้เครื่องมือต่างๆ เช่น WebP, pngcrush และ pngquant เครื่องมือทั้งหมดนี้ สามารถลดขนาดไฟล์ PNG ในขณะที่ยังคงคุณภาพของรูปภาพที่รับรู้ได้
  • เครื่องมือ aapt สามารถเพิ่มประสิทธิภาพทรัพยากรรูปภาพที่วางไว้ใน res/drawable/ ด้วยการบีบอัดแบบไม่สูญเสียข้อมูลในระหว่างกระบวนการสร้าง เช่น เครื่องมือ aapt สามารถแปลง PNG แบบ True Color ที่ไม่จำเป็นต้องใช้สีมากกว่า 256 สีเป็น PNG แบบ 8 บิตที่มีชุดสี การทำเช่นนี้จะทำให้ได้รูปภาพที่มีคุณภาพเท่ากัน แต่ใช้หน่วยความจำน้อยกว่า