Preload เป็น "readahead daemon แบบปรับตัว" ที่ทำงานในพื้นหลังของระบบของคุณและสังเกตว่าโปรแกรมใดที่คุณใช้บ่อยที่สุดจะทำการแคชโปรแกรมเหล่านั้นเพื่อเร่งความเร็วในการโหลดแอปพลิเคชัน ด้วยการใช้ Preload คุณสามารถทำให้ RAM ที่ไม่ได้ใช้ทำงานได้ดีและปรับปรุงประสิทธิภาพโดยรวมของระบบเดสก์ท็อปของคุณ
อย่าคาดหวังว่าจะเห็นการเปลี่ยนแปลงอย่างมากในประสิทธิภาพการทำงานทันที นอกจากนี้หากคุณเพิ่งเปิด / ปิดแอปพลิเคชันซ้ำ ๆ คอมพิวเตอร์ของคุณจะเก็บไฟล์เหล่านั้นไว้ในแคชอยู่ดี (ซึ่งเรียกว่าโหลด "อบอุ่น") ดังนั้นคุณจะไม่เห็นความแตกต่างของความเร็วที่นั่น อย่างไรก็ตามคุณจะเห็นการปรับปรุงความเร็วหากคุณใช้โปรแกรมเป็นระยะ ๆ โปรแกรมเหล่านี้จะเริ่มทำงานได้เร็วกว่าโดยไม่ต้องโหลดล่วงหน้า
Preload สามารถปรับปรุงเวลาเริ่มต้นแอปพลิเคชันให้ดียิ่งขึ้น เนื่องจากเครื่องจักรที่ทันสมัยส่วนใหญ่มีหน่วยความจำสำรองเพียงพอ Preload ทำให้ RAM นี้ใช้งานได้ดี 1
ตอนนี้ที่ถูกกล่าวว่าดูเหมือนว่าพรีโหลดเป็นสาธารณูปโภคที่ดีและมันอาจจะเป็น
ฉันคิดว่าเหตุผลที่ไม่ได้ติดตั้งระบบปฏิบัติการไว้ล่วงหน้านั้นเป็นเพราะผู้ใช้ต้องรู้อย่างแน่นอนว่ากำลังทำอะไรอยู่และมีประสบการณ์มากพอที่จะใช้งานได้และระบบจะต้องมี RAM เพียงพอ
ในด้านเทคนิคเพิ่มเติมโหลดล่วงหน้าทำงานโดยย้ายข้อมูลจากฮาร์ดดิสก์ไปยัง RAM ซึ่งทำให้ฮาร์ดดิสก์ส่วนใหญ่เข้าสู่โหมดสลีปหากไม่ได้ใช้งานแล้วต้องหมุนกลับเมื่อจำเป็น ดังนั้นการหมุนขึ้น / ลงของไดรฟ์จะทำให้จำนวนรอบการโหลด / ยกเลิกการโหลดและการนับเวลาเปิดเครื่องเพิ่มขึ้นซึ่งจะทำให้อายุการใช้งานของไดรฟ์สั้นลง
เราออกแบบและดำเนินการพรีโหลดซึ่งเป็นรูปแบบการดึงข้อมูลล่วงหน้าแบบปรับตาม Markov ที่ทำงานกับการทำนายระดับแอปพลิเคชัน ยิ่งไปกว่านั้นการโหลดล่วงหน้าจะถูกนำไปใช้ใน userspace และจะไม่เปลี่ยนแปลงสภาพแวดล้อมรันไทม์ของแอปพลิเคชั่น แต่อย่างใด นี่คืองานแรกที่ทดลองใช้การดึงข้อมูลล่วงหน้าของระบบในระดับนี้เท่าที่เรารู้
ผลการทดลองของเราแสดงให้เห็นถึงการพัฒนาที่ดีขึ้นเกี่ยวกับเวลาเริ่มต้นแอปพลิเคชันเมื่อเปรียบเทียบกับแคชเย็นและอัตราการเข้าชมที่เหมาะสมเมื่อเทียบกับอัลกอริทึมการทำนายไร้เดียงสา
อย่างไรก็ตามการอยู่ในพื้นที่ของผู้ใช้ทำให้เกิดปัญหาและอุปสรรคที่สำคัญในการทำให้การแก้ปัญหาการแข่งขันเกิดขึ้นก่อนเวลา โดยเฉพาะอย่างยิ่งการไม่มีข้อมูลเต็มเกี่ยวกับคำขอ I / O ของแอปพลิเคชันและการขาดช่องทางการสื่อสารที่มีประสิทธิภาพด้วยระบบย่อยแคชของเพจทำให้ประสิทธิภาพการโหลดลดลงอย่างมากโดยเฉพาะอย่างยิ่งภายใต้เงื่อนไขหน่วยความจำแน่น
ปัญหาอีกประการหนึ่งของการออกแบบพรีโหลดคือความแปรปรวนสูงและการคาดการณ์ต่ำซึ่งเกิดจากความสัมพันธ์ที่ค่อนข้างหลวมของการเริ่มต้นแอปพลิเคชัน ในขณะที่เราประสบความสำเร็จในการสร้างแบบจำลองเพื่อติดตามความสัมพันธ์ของแอปพลิเคชันความจริงที่ว่าการเปิดตัวแอปพลิเคชันนั้นเป็นเหตุการณ์ที่เกิดขึ้นน้อยมากเมื่อเทียบกับไทม์สเกลที่คอมพิวเตอร์ทำงานอยู่ หน่วยความจำนี้สามารถใช้เพื่อปรับปรุงพฤติกรรมแคชระยะสั้น
ในที่สุดเราก็มาพร้อมกับชุดคำแนะนำสำหรับนักพัฒนาระบบเกี่ยวกับวิธีการปรับปรุงเวลาบูตเวลาล็อกอินและเวลาเริ่มต้นแอปพลิเคชันโดยไม่ต้องย้อนกลับไปยัง prefetcher ที่รวมเข้ากับระบบย่อยแคชในเคอร์เนล แน่นอน prefetcher fi le-based ในเคอร์เนลสามารถปรับปรุงได้ 2
1ที่มา: techthrob
2ที่มา: Preload - Daemon Prefetching แบบปรับตัวโดย Behdad Esfahbod - วิทยานิพนธ์ที่ส่งสอดคล้องกับข้อกำหนดสำหรับระดับปริญญาวิทยาศาสตรมหาบัณฑิต - บัณฑิตภาควิชาวิทยาการคอมพิวเตอร์ - มหาวิทยาลัยโตรอนโตลิขสิทธิ์ (c) 2006 โดย Behdad Esfahbod