พาร์ติชั่น / ไฟล์สลับจะมีผลกับระบบอย่างไร?


20

เพื่อนบางคนบอกฉันว่าโทรศัพท์ Android ของพวกเขามีหน่วยความจำน้อยมาก (<100MB) สำหรับแอปทั่วไปเนื่องจากระบบปฏิบัติการและบริการที่ไม่สามารถฆ่าได้ใช้ RAM ส่วนใหญ่ ตัวอย่างเช่นโทรศัพท์หนึ่งเครื่องที่มี 512MB แสดงหน่วยความจำที่มีอยู่ 90MB เท่านั้นดังนั้นแอปพลิเคชัน 2-3 ตัวสามารถเรียกใช้ในเวลาเดียวกัน

ฉันสงสัยว่าการสร้าง swap partition / file จะช่วยได้หรือไม่ แต่ฉันเห็นความคิดเห็นที่หลากหลายทั่วทั้งเว็บและฉันไม่แน่ใจว่าควรทำอย่างไร นี่คือคำถามของฉัน:

(1) จะมีหน้าหน่วยความจำที่ไม่ได้ใช้บ่อยเพื่อแลกเปลี่ยนโดยเฉพาะอย่างยิ่งในระบบปฏิบัติการและบริการที่ไม่สามารถฆ่าได้เหล่านั้นหรือไม่

(2) การสลับหน้าหน่วยความจำขนาดเล็กจะทำให้อายุความจำแฟลชยาวนานขึ้นได้อย่างไร แฟลช (หรือการ์ด SD) ทำระดับการสึกหรอโดยอัตโนมัติหรือไม่?

(3) การสลับจะช่วยให้ประสิทธิภาพดีขึ้นเมื่อใช้งานหลาย ๆ แอพหรือไม่ ฉันคิดว่าคำตอบของ (1) คือใช่มันจะ

(4) การเขียนไปยังแฟลชช้าเกินไปและทำให้การตอบสนองเสียหายเมื่อทำการแลกเปลี่ยนเกิดขึ้นหรือไม่

(5) เป็นจริงหรือไม่ที่ Android เก็บกลไกการแลกเปลี่ยนจากเคอร์เนล Linux ดังนั้นตราบใดที่มีการแลกเปลี่ยนพาร์ติชั่น / ไฟล์มันจะทำการแลกเปลี่ยนโดยไม่มีการตั้งค่าเพิ่มเติมหรือไม่?

ขอบคุณที่อ่าน.

คำตอบ:


8

ฉันไม่คิดว่าการแลกเปลี่ยนสำหรับ Android จะมีประโยชน์มากนักเนื่องจากแอปพลิเคชัน Android Life Cycle เป็นรูปแบบการแลกเปลี่ยนขั้นสูงมากขึ้น

(1) จะมีหน้าหน่วยความจำที่ไม่ได้ใช้บ่อยเพื่อแลกเปลี่ยนโดยเฉพาะอย่างยิ่งในระบบปฏิบัติการและบริการที่ไม่สามารถฆ่าได้เหล่านั้นหรือไม่

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

(2) การสลับหน้าหน่วยความจำขนาดเล็กจะทำให้อายุความจำแฟลชยาวนานขึ้นได้อย่างไร แฟลช (หรือการ์ด SD) ทำระดับการสึกหรอโดยอัตโนมัติหรือไม่?

แม้ว่า SD-card จะมีการสึกหรอในระดับที่เหมาะสมการสลับเปลี่ยนจะทำให้เจ็บมาก

(3) การสลับจะช่วยให้ประสิทธิภาพดีขึ้นเมื่อใช้งานหลาย ๆ แอพหรือไม่ ฉันคิดว่าคำตอบของ (1) คือใช่มันจะ

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

(4) การเขียนไปยังแฟลชช้าเกินไปและทำให้การตอบสนองเสียหายเมื่อทำการแลกเปลี่ยนเกิดขึ้นหรือไม่

อาจจะไม่ จะต้องมีมาตรฐานสำหรับสิ่งนั้น

(5) เป็นจริงหรือไม่ที่ Android เก็บกลไกการแลกเปลี่ยนจากเคอร์เนล Linux ดังนั้นตราบใดที่มีการแลกเปลี่ยนพาร์ติชั่น / ไฟล์มันจะทำการแลกเปลี่ยนโดยไม่มีการตั้งค่าเพิ่มเติมหรือไม่?

ฉันไม่รู้ว่า Android เก็บกลไกการแลกเปลี่ยนไว้หรือไม่แม้ว่าจะเป็นเช่นนั้น (หรือถ้าคุณคอมไพล์เคอร์เนลของคุณเอง) คุณยังต้องมีการกำหนดค่าบางอย่าง มันมักจะเพียงแค่มีแฟ้มที่จุดเพื่อแลกเปลี่ยนไฟล์และการทำfstabswapon -a

ในความเป็นจริงฉันมีเหตุผลว่าทำไมการแลกเปลี่ยนอาจส่งผลกระทบต่อประสิทธิภาพการทำงานจริง ๆ : มันป้องกัน Application Life Cycle, รูปแบบการจัดการหน่วยความจำของ Android เพื่อทำงานอย่างถูกต้อง


ขอบคุณสำหรับคำตอบ. ฉันยังมีคำถาม ใน Samsung Fascinate บริการที่ไม่สามารถฆ่าได้ 10 บริการใช้หน่วยความจำประมาณ 110M มีบริการฆ่าอื่น ๆ อีก 22 แห่งที่ทำงานอยู่ แต่ "กำลังเรียกใช้แอปพลิเคชัน" ไม่แสดงแอปพลิเคชันที่ทำงานอยู่ เป็นโทรศัพท์ของเพื่อนฉันและฉันไม่รู้ว่าเธอทำอะไรมาก่อน แต่ดูเหมือนว่าเป็นไปได้ที่บริการ / แอพจำนวนมากสามารถทำงานพร้อมกันได้ ฉันไม่คิดว่าบริการ / แอปพื้นหลังเหล่านี้จะใช้หน้าเว็บทั้งหมดที่พวกเขาต้องการเมื่อเริ่มทำงาน นอกจากนี้ให้บันทึกสถานะแอป + รีโหลดและรีสตาร์ทแอป + สถานะการกู้คืนก็จะช้าเช่นกัน
กรีน

อีกวิธีหนึ่งในการคิดถึงปัญหานี้คือ: สมมติว่าอายุการใช้งานแฟลชไม่เป็นปัญหา Android ควรทำการแลกเปลี่ยนหรือไม่ หากไม่มีความแตกต่างที่สำคัญระหว่างแอพ Android และแอพเดสก์ท็อปที่ทำให้การแลกเปลี่ยนไม่มีประโยชน์กับ Android คืออะไร ฉันไม่คิดว่า Android Life Cycle ใช้ได้กับแอปพลิเคชันเดสก์ท็อป / เซิร์ฟเวอร์
กรีน

@evergreen: สถานะแอปพลิเคชันจะถูกบันทึกไว้เมื่อแอปพลิเคชันไปที่พื้นหลัง (เช่นเมื่อผู้ใช้กดที่บ้านเพื่อสลับงาน) หลังจากนั้นเมื่อแอปพลิเคชันอื่นต้องการหน่วยความจำแอปพลิเคชันรุ่นเก่าหรือบริการพื้นหลังจะถูกบังคับให้ใช้งาน (FK ใช้เวลาไม่นาน) ซึ่งหมายความว่าการฆ่าภารกิจนั้นเกิดขึ้นทันทีเนื่องจากสถานะแอปพลิเคชันได้รับการบันทึกมานานแล้ว เมื่อคุณโหลดแอปพลิเคชันที่อยู่ในหน่วยความจำแล้วคุณจะได้รับเวลาโหลดที่เร็วที่สุด แต่ถ้าสมัครแล้วถูกยกเลิกการโหลดแล้วโปรแกรมต้องทำโหลดเต็ม (ซึ่งเป็นสถานการณ์เดียวกันกับการแลกเปลี่ยน)
โกหกไรอัน

@evergreen: หากคุณใช้ task killer คุณจะบังคับให้แอปพลิเคชั่นยกเลิกการโหลดและคุณจะต้องทำการรีโหลดแบบเต็มเสมอแทนที่จะโหลดแบบเร็วเมื่อแอปพลิเคชันยังคงอยู่ในหน่วยความจำ หากคุณใช้ swap file / partition แอปพลิเคชั่น (เก่ากว่า) จะถูกแลกเปลี่ยนและการกู้คืนจะใช้เวลาเกือบเท่ากันกับการโหลดซ้ำทั้งหมด ยกเว้น: ด้วยการโหลดซ้ำเต็มรูปแบบผู้พัฒนาแอปพลิเคชันได้แยกข้อมูลถาวรกับข้อมูลชั่วคราวและสามารถเพิ่มประสิทธิภาพสิ่งที่จะบันทึกและสิ่งที่ไม่ควรปรับปรุงที่เก็บข้อมูล ในขณะที่มีการคืนค่า swap คุณปล่อยให้นักพัฒนาแอปพลิเคชันไม่พูดและแลกเปลี่ยนทุกอย่าง
Lie Ryan

@evergreen: แม้ว่าสมมติว่าอายุการใช้งานแฟลชไม่เป็นปัญหา แต่ Android ก็ไม่ควรแลกเปลี่ยนเพราะ Application Life Cycle ทำงานได้ดีขึ้น Android Life Cycle ถูกออกแบบมาสำหรับสภาพแวดล้อมที่ จำกัด หน่วยความจำในเดสก์ท็อปและเซิร์ฟเวอร์คุณมีหน่วยความจำขนาดมหึมาและผู้ใช้ทำมัลติทาสก์ได้มากขึ้นและพวกเขาไม่คาดหวังว่าโปรแกรมแบ็คกราวน์จะถูกฆ่าโดยระบบปฏิบัติการ จุดอ่อนของ Android Life Cycle คือต้องการการสนับสนุนแอปพลิเคชัน แอปพลิเคชันจะต้องพร้อมที่จะฆ่าได้ตลอดเวลาและต้องบันทึกสถานะที่จุดที่กำหนดไว้ล่วงหน้า ความซับซ้อนดังกล่าวไม่เกี่ยวข้องกับแอพเดสก์ท็อป
Lie Ryan

5

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

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

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

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

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

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

ฉันเดาว่าคนที่มีความสุขกับระบบหุ้นใช้โทรศัพท์ของพวกเขาแตกต่างกัน

ฉันควรใช้พาร์ทิชันสลับกับ Cyanogenmod หรือไม่


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

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

@LieRyan - "กลับไปที่เบราว์เซอร์ที่มีหน้าสุดท้ายของฉันพร้อมทุกอย่างในสถานที่ที่โหลดทันที" คุณเบราว์เซอร์คืนตำแหน่งเลื่อนบนหน้าเว็บที่เปิดหลังจากโหลดซ้ำหรือไม่ นั่นคือสิ่งที่ Chrome ไม่ได้ทำ (แม้ว่าฉันจะชอบเบราว์เซอร์นี้มาก) ซึ่งเป็นเรื่องที่โชคร้ายมากเมื่อคุณหยุดอ่านกลางหน้าเว็บที่ค่อนข้างจะบันทึกก่อนที่จะเปลี่ยนไปพูดพูดรับสาย ...
kerim

2

ฉันมี Spice mi-435 (ขายในอินเดียเท่านั้น) ซึ่งมี RAM เพียง 340M เฮ้, ไฟล์ swap ช่วยได้มาก โทรศัพท์ของฉันรัน ICS บน RAM ต่ำเช่นนั้นและป้อนหน่วยความจำไม่เพียงพอหลายสถานะและมีไฟล์ swap ช่วยได้มาก สถานะแอปพลิเคชันทั้งหมดจะถูกถ่ายโอนเพื่อสลับเมื่อไม่ได้ใช้งาน สิ่งนี้ทำให้ห้องโทรศัพท์ของฉันมีแอพพลิเคชั่นมากขึ้นและแอพ RAM หิวให้ทำงานได้อย่างราบรื่นโดยมีความล่าช้าน้อยกว่ามาก แม้ว่าจะมีปัญหาเกิดขึ้นเมื่อฉันเปิดแอปที่ฉันเคยใช้มาก่อน ใช้เวลาโหลดสถานะเนื่องจาก SD ช้ากว่า RAM ความเร็วสูงมาก แต่ตัวเลือกสลับจะดีกว่าสำหรับ RAM ที่น้อยกว่า ฉันขอแนะนำให้สลับพาร์ติชันสำหรับ RAM น้อยกว่า 512M แต่ไม่ใช่มากกว่า 512M

หวังว่ามันจะเป็นประโยชน์


1

ไฟล์ Swap ช่วยได้แม้ในระบบที่มี RAM สูงกว่า quad core 1gb ram แท็บเล็ต 7 นิ้วของฉันได้รับการเพิ่มมัลติทาสกิ้งที่สำคัญจากการเชยในการสลับ 2gb บนการ์ด micro sd uhs-1 และแน่นอนว่าราคาของหน่วยความจำลดลงอย่างรวดเร็วและถึงแม้จะมีการเขียนข้อมูลอย่างต่อเนื่องแฟลช nand ก็ควรจะเป็นปีที่ผ่านมา

โดยพื้นฐานแล้วผมมีความคิดเห็นเพราะความแตกต่างด้านประสิทธิภาพนั้นรุนแรงมากซึ่งทุกคนที่มี RAM น้อยกว่ามากควรจะทำสิ่งนี้ ในความเป็นจริงมันอาจจะมาเป็นตัวเลือกมาตรฐานใน Android (พร้อมกับแคชแอพที่ใหญ่กว่าและแคชอินเทอร์เน็ตที่มีขนาดเหมาะสม)

ฉันหมายถึงคุณมี microSD แบบ 64-128gb (uhs-1) หรือแม้แต่ uhs-2 ที่ออกมาในปีนี้บวกกับ nand ภายใน 16-64gb ซึ่งมักจะเป็น "fast" ซึ่งเป็นชนิดดั้งเดิมของ ssd หรือ แม้กระทั่ง SSD ที่ใช้บน windows slates - คุณไม่ได้เติมเต็มพื้นที่ว่างด้วยความเร็วสูงทั้งหมด ความเร็วเข้ามาเล่นกับวิดีโอหรือโหลดแอปลงในหน่วยความจำเท่านั้นซึ่งเป็นการใช้งานที่นี่อย่างแท้จริง

แน่นอนว่าผู้ผลิตจะให้ความสำคัญกับ RAM มากกว่าความละเอียดหรือคอร์เพิ่มเติมเพราะเห็นได้ชัดว่าความเร็วของระบบได้รับประโยชน์มากมายจาก RAM ที่สูงกว่า - และพวกเขาก็น่าจะเพิ่มความเร็วในการจัดเก็บข้อมูลภายในเช่นกัน หรืออย่างน้อย "เร็ว" nand แต่ในเวลาเฉลี่ยในขณะที่ความละเอียดสูงมีแนวโน้มที่จะทำให้เกิดการขาดดุลแรมในอุปกรณ์ทั้งหมดไฟล์สลับและการแคชกับ sd ภายนอกที่เร็วพอสมควรทำให้มีเหตุผล

แน่นอนว่ามันจะเป็นการดีถ้าเห็นเบราว์เซอร์บางตัวทำการแคชอย่างเต็มที่เช่นกันเบราว์เซอร์ส่วนใหญ่มีคุณสมบัติที่ช้าหรือต่ำไม่ค่อยมีคุณลักษณะที่เร็วและเต็มรูปแบบและนั่นเป็นส่วนหนึ่งเนื่องจากพื้นที่สำหรับแคชของแอปบนไดรฟ์ภายในมีขนาดเล็ก พวกเขาถูกออกแบบมาเพื่อใช้งานภายในหน่วยความจำต่ำและสภาพแวดล้อมการจัดเก็บและเรื่องราวทั้งหมดนั้นกำลังเปลี่ยนแปลงไป แม้ว่าหน่วยความจำจะไม่สามารถสับได้มากเท่าที่ควรการจัดเก็บก็เป็นไปได้และมันก็ค่อนข้างรวดเร็วในมาตรฐาน UHS-1 (หรือ uhs-2 ที่วางจำหน่ายในปีนี้) แม้ว่าจะไม่ใช่ " เร็ว "หรือ ssd

และค่าใช้จ่ายของหน่วยความจำภายนอกก็คือถั่วลิสงจริงๆถึงแม้จะมีความจุสูงกว่า uhs-1 อย่างน้อย 64gb uhs-1 นั้นมีราคาไม่แพงอย่างสมบูรณ์ (50 bucks ที่ฉันอยู่ แต่มันจะน้อยกว่า USD) ราคาถูกกว่าอุปกรณ์มากและ 32 gb และต่ำกว่านั้นเป็นสอง tenners

บทเรียนมากมายที่ต้องเรียนรู้จากเดสก์ท็อปจริงๆโดยเฉพาะตอนนี้รายละเอียดกำลังสูงขึ้น - ลิงค์ประสิทธิภาพที่ช้าที่สุดกำลังโหลดจากที่เก็บข้อมูลไปยัง RAM ยิ่งคุณสามารถทำเช่นนั้นได้มากเท่าไหร่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.