Virtual RAM ใน Android คืออะไรและคุณควรใส่ใจ
เบ็ดเตล็ด / / March 16, 2022
นอกเหนือจาก ล้านพิกเซลกล้องขนาดใหญ่ และ อัตราการรีเฟรชสูงแสดงแนวโน้มที่ใหญ่ที่สุดในโลกของสมาร์ทโฟนน่าจะเป็น Virtual RAM บางคนเรียกว่าการขยาย Dynamic RAM ในขณะที่คนอื่นเรียกว่า Extended RAM ไม่ว่าจะเรียกว่าอะไร แนวคิดยังคงเหมือนเดิม อนุญาตให้ผู้ใช้ใช้พื้นที่เก็บข้อมูลบางส่วนของตนเป็น RAM เพื่อช่วยในการทำงานหลายอย่างพร้อมกัน
![](/f/916d140fd5d0f900d5417754472e0335.jpg)
เราจะพูดถึงในคู่มือนี้ว่าการจัดการหน่วยความจำใน Android ทำงานอย่างไรและแนวคิดของ Virtual RAM แตกต่างจากมันอย่างไร เราจะพยายามไตร่ตรองว่าจำเป็นต้องใช้ Virtual RAM บน Android หรือไม่ ไปกันเถอะ
การจัดการหน่วยความจำทำงานอย่างไรบน Android
อย่างแรกเลย สิ่งสำคัญคือต้องเข้าใจว่า Android จัดการหน่วยความจำของคุณอย่างไร ภายใน Android มีหน่วยความจำ 3 ประเภท อย่างแรกคือ RAM ของคุณ จากนั้นคุณมี zRAM และสุดท้ายคือที่เก็บข้อมูลของคุณ RAM เป็นโมดูลหน่วยความจำพื้นฐานภายในซึ่งแอปทั้งหมดทำงาน จากนั้นจะมีที่เก็บข้อมูลออนบอร์ดของคุณ ไม่ว่าจะเป็น UFS หรือ eMMC บนอุปกรณ์ราคาประหยัด ในที่สุด เราก็มี zRAM โดยพื้นฐานแล้ว zRAM คือพาร์ติชั่นภายในแรม
แนวคิดเบื้องหลัง zRAM คือข้อมูลที่มีความสำคัญต่ำบน RAM จะถูกบีบอัดและจัดเก็บไว้ใน zRAM เนื่องจาก RAM นั้นเร็วกว่าที่เก็บข้อมูลปกติของคุณในทุกๆ วัน จึงมีการบีบอัดข้อมูลภายใน zRAM ซึ่งเป็นส่วนหนึ่งของ RAM นั้น ยังคงเร็วกว่าการเข้าถึงจากที่เก็บข้อมูลของคุณ แม้ว่าคุณจะนับเวลาในการบีบอัดและไม่บีบอัดก็ตาม
![](/f/47c668d1ba870b9177852045ffe6b9b4.png)
ตอนนี้เราได้สร้างหน่วยความจำที่แตกต่างกัน 3 ประเภทสำหรับ Android แล้ว เรามาทำความเข้าใจว่าระบบปฏิบัติการจัดการมันอย่างไร ดังนั้น Android จึงใช้เทคนิคการเพจ วิธีทำงานคือ RAM ถูกแบ่งออกเป็นหน้าๆ โดยที่แต่ละหน้าจะมีขนาด 4KB ไม่ว่าหน้านั้นจะว่างหรือใช้งานจริง หน้านั้นจะรวมกันเพื่อแสดง RAM ที่ใช้และ RAM ที่ไม่ได้ใช้ตามลำดับ จากนั้น งานของเคอร์เนลคือการแปลงหน่วยความจำที่ใช้เป็นหน่วยความจำว่าง ทำได้โดยการย้ายข้อมูลในหน้าที่ใช้เหล่านั้นไปยังที่เก็บข้อมูลของคุณ
เพจจิ้งคืออะไรและทำงานอย่างไร
เพื่อให้เข้าใจวิธีการทำงาน มาทำความเข้าใจประเภทของหน้ากัน คุณสามารถแบ่งหน้าออกเป็นสองประเภท - หน้าสะอาดและหน้าสกปรก หน้าสะอาดมีสำเนาที่ไม่ได้แก้ไขที่บันทึกไว้ในพื้นที่จัดเก็บ ในขณะเดียวกัน เพจสกปรกมีสำเนาข้อมูลที่แก้ไขซึ่งจัดเก็บไว้ในที่จัดเก็บ ทีนี้ อะไรคือสิ่งที่ถูกแก้ไขและไม่เปลี่ยนแปลง? เรียกได้ว่าเป็นการใช้หน่วยความจำของคุณแบบไดนามิก
สำเนาที่ไม่ได้แก้ไขเป็นข้อมูลคงที่ ในขณะที่สำเนาที่แก้ไขจะเปลี่ยนแปลงข้อมูลแบบไดนามิกทุกวินาที Android สามารถล้างหน้าที่สะอาดเมื่อจำเป็น เนื่องจากไม่ได้เข้าถึงทรัพยากรแบบไดนามิก ที่ช่วยเพิ่มพื้นที่ว่างของ RAM และทำให้ใช้งานได้มากขึ้น นั่นอาจฟังดูเป็นเรื่องทางเทคนิคเกินไป ดังนั้นเรามาทำให้เข้าใจได้ง่ายขึ้นโดยใช้แอปพลิเคชันในโลกแห่งความเป็นจริง
![](/f/16f58a8037a3d1082f73cba81964e750.png)
สมมติว่าคุณเปิด Twitter เรียกดูฟีดของคุณ แล้วเปลี่ยนไปใช้อย่างอื่น Twitter ยังคงอยู่ใน RAM ของคุณ แต่ถ้าคุณไม่เปิดมันสักพัก ลำดับความสำคัญจะลดลง ในภายหลัง หากคุณเปิดตัวสิ่งใหม่ ๆ Android จะต้องทำให้หน่วยความจำที่ Twitter ใช้ว่างมากขึ้น ดังนั้นสิ่งที่ทำคือเปลี่ยนค่าและข้อมูลไปยังที่เก็บข้อมูล และให้พื้นที่ว่างแก่คุณ นี่คือเหตุผลที่เมื่อคุณเปิด Twitter อีกครั้ง อันดับแรกจะแสดงไทม์ไลน์ว่าถูกระงับ แล้วจึงรีเฟรช เช่นเดียวกับ Facebook, Reddit หรือแอพที่คล้ายกัน เช่น เครื่องคิดเลขหรือโน้ต แอพเหล่านี้ใช้หน้าสะอาด เนื่องจากสำเนาของข้อมูลจะถูกบันทึกไว้ในที่เก็บข้อมูลของคุณแบบคงที่
![](/f/577b8339e6679010d717056b5ed7fbb6.png)
สำหรับหน้าสกปรก ให้พิจารณา Spotify หรือเครื่องเล่นเพลงใดๆ คุณเริ่มเพลงในเครื่องเล่นแล้วปล่อยให้มันทำงานในพื้นหลังโดยไม่ต้องเปิดแอพ อย่างไรก็ตาม ระบบไม่สามารถปิดได้เนื่องจากกำลังใช้หน่วยความจำของคุณแบบไดนามิก ด้วยเหตุนี้ Android จึงบีบอัดแอปและเปลี่ยนเป็น zRAM เมื่อต้องการ RAM ที่ว่างมากขึ้น
RAM เสมือนคืออะไร
เมื่อคุณรู้แล้วว่า Android จัดการหน่วยความจำอย่างไร คุณต้องสงสัยว่าคุณสมบัติ Virtual RAM มาอยู่ที่ใด จำได้ไหมว่าเราพูดว่า zRAM เป็นส่วนหนึ่งของ RAM ด้วยหรือไม่? วิธีการทำงานของ Virtual RAM คือการสร้างพาร์ติชั่นสว็อปบนพื้นที่เก็บข้อมูลของคุณ และใช้เป็น zRAM พิเศษ
![](/f/239f2b6903b57b29dca1bc02631ba50b.png)
เนื่องจาก zRAM ถูกเก็บไว้ใน RAM ของคุณเท่านั้น คุณจึงบีบอัดและจัดเก็บไว้ในจำนวนหน้าได้จำกัด ด้วยพาร์ติชั่นสว็อป คุณสามารถใช้พื้นที่เก็บข้อมูลของคุณเป็น zRAM พิเศษ สำหรับการบีบอัดและย้ายแอพ ในขณะที่ทำให้พื้นที่ว่างใน RAM จริงของคุณมี
คุณลักษณะนี้ใหม่หรือไม่
ทั้งหมดนี้เป็นเรื่องใหม่หรือไม่? ไม่ได้จริงๆ Linux ใช้พาร์ติชั่นสว็อปมาตั้งแต่ต้น สำหรับ Android ผู้ใช้เคอร์เนลแบบกำหนดเองได้ใช้การ์ด SD เพื่อสร้างพาร์ติชั่นสว็อปเพิ่มเติมเพื่อปรับปรุงการจัดการหน่วยความจำ
ด้วยเหตุนี้ ผู้ผลิตแบรนด์จึงมอบฟีเจอร์เดียวกันนี้ให้กับคุณในสกิน Android ของพวกเขา อย่างไรก็ตาม เกิดคำถามขึ้นว่า หากฟีเจอร์นี้มีประโยชน์มาก เหตุใดจึงไม่เป็นส่วนหนึ่งของซอร์สโค้ดของ Android
แรมเสมือนดีหรือไม่ดี
คำตอบอยู่ในการทำงานพื้นฐานของ Virtual RAM นั่นเอง แม้ว่าคุณลักษณะนี้จะช่วยให้คุณสามารถเรียกใช้แอปบนอุปกรณ์ของคุณได้มากขึ้นโดยการบีบอัดแอปที่ไฮเบอร์เนตและย้ายไปยังที่จัดเก็บข้อมูลของคุณ การทำอันตรายมากกว่าผลดี เนื่องจากพาร์ติชั่นสว็อปจะจัดเก็บแอปที่ใช้งานอยู่เป็นหลัก จึงมีความรู้สึกเกี่ยวกับการอ่านและการเขียนที่สูงขึ้น
วิธีนี้ใช้งานได้ดีกับที่จัดเก็บข้อมูลแบบเดิม แต่หน่วยความจำแฟลชมีจำนวนการอ่านและเขียนที่จำกัด ดังนั้นโดยการใช้ SWAP หรือ Virtual RAM คุณจะลดอายุขัยของที่เก็บข้อมูลอุปกรณ์ของคุณในทางเทคนิค
สิ่งนี้ยังเน้นได้ดีใน หน้านักพัฒนาของ Android. “บน Android ที่เก็บข้อมูลไม่ได้ใช้สำหรับพื้นที่สว็อปเหมือนในการใช้งาน Linux อื่น ๆ เนื่องจากการเขียนบ่อยครั้งสามารถทำได้ ทำให้หน่วยความจำนี้สึกหรอและทำให้อายุการใช้งานของสื่อจัดเก็บข้อมูลสั้นลง” อีกตัวอย่างหนึ่งคือใน Apple M1. ใหม่ แมคบุค เครื่องเหล่านั้นใช้พาร์ติชั่นสว็อปบน SSD ของ Apple ซึ่งผู้ใช้บ่นกันค่อนข้างมาก
แรมเสมือนมีความสำคัญหรือไม่ และคุณควรใช้มันหรือไม่
โดยพื้นฐานแล้ว ทั้งหมดขึ้นอยู่กับว่าคุณกำหนดการทำงานหลายอย่างพร้อมกันอย่างไร หากมีการเล่นกลระหว่างแอปที่ใช้งานอยู่เพียงสองถึงสามแอป แน่นอนว่า RAM เสมือนจะช่วยได้ แต่ถ้าคุณสลับไปมาระหว่างแอปที่ใช้งานหนัก 5-6 แอป แรมเสมือนจะไม่ทำอะไรเลยเพราะจะทำให้แอปเปลี่ยนไปเรื่อย ๆ
แก่นแท้ของมัน คุณลักษณะ RAM เสมือน ช่วยให้คุณมีพื้นที่ RAM มากขึ้นสำหรับแอปที่จะทำงาน อย่างไรก็ตาม มันมาพร้อมกับค่าใช้จ่ายในการจัดเก็บของคุณ หากคุณตั้งใจจะใช้อุปกรณ์ของคุณต่อไปเป็นเวลานานกว่าสองปี เราคิดว่าการใช้ RAM เสมือนอาจไม่สมเหตุสมผลนัก