กลับไปหน้าบทความ

อ่าน 3 นาที

ตัวดึงข้อมูลล่วงหน้า

Prefetcher เป็นส่วนประกอบของ Microsoft Windows ซึ่งเปิดตัวใน Windows XP [ 1 ] เป็น ส่วนประกอบของ ระบบย่อย Session Manager ที่สามารถเร่ง กระบวนการ บูต ของ Windows...

ตัวดึงข้อมูลล่วงหน้า

Prefetcher เป็นส่วนประกอบของMicrosoft Windowsซึ่งเปิดตัวในWindows XP [ 1 ] เป็นส่วนประกอบของระบบย่อย Session Managerที่สามารถเร่งกระบวนการบูตของ Windows และลดระยะเวลาในการเริ่มต้นโปรแกรม โดยจะทำการแคชไฟล์ที่แอปพลิเคชันต้องการลงใน RAM เมื่อแอปพลิเคชันเริ่มทำงาน ซึ่งจะช่วยลดการอ่านดิสก์และลดการค้นหาดิสก์ คุณสมบัตินี้ได้รับการคุ้มครองโดยสิทธิบัตรของสหรัฐอเมริกาหมายเลข 6,633,968 [ 2 ] [ 3 ]

ตั้งแต่Windows Vista เป็นต้น มา Prefetcher ได้รับการขยายเพิ่มเติมด้วยSuperFetchและReadyBoost SuperFetch พยายามเร่งเวลาในการเปิดแอปพลิเคชันโดยการตรวจสอบและปรับให้เข้ากับรูปแบบการใช้งานแอปพลิเคชันในช่วงเวลาต่างๆ และแคชไฟล์และข้อมูลส่วนใหญ่ที่แอปพลิเคชันต้องการลงในหน่วยความจำล่วงหน้า เพื่อให้สามารถเข้าถึงได้อย่างรวดเร็วเมื่อจำเป็น ReadyBoost (เมื่อเปิดใช้งาน) จะใช้หน่วยความจำภายนอก เช่น แฟลชไดรฟ์ USB เพื่อขยายแคชของระบบให้เกินกว่าปริมาณ RAM ที่ติดตั้งในคอมพิวเตอร์ SuperFetch ยังมีส่วนประกอบที่เรียกว่า ReadyBoot ซึ่งจะแทนที่ Prefetcher สำหรับกระบวนการบูตหากระบบมี RAM 700 MB ขึ้นไป[ 4 ]

ภาพรวม

เมื่อระบบ Windows เริ่มทำงาน ส่วนประกอบของไฟล์จำนวนมากจำเป็นต้องถูกอ่านเข้าสู่หน่วยความจำและประมวลผล บ่อยครั้งที่ส่วนต่างๆ ของไฟล์เดียวกัน (เช่น รีจิสทรี) จะถูกโหลดในเวลาที่ต่างกัน ส่งผลให้เสียเวลาไปมากในการ "กระโดด" จากไฟล์หนึ่งไปยังอีกไฟล์หนึ่งหลายครั้ง แม้ว่าการเข้าถึงเพียงครั้งเดียวจะมีประสิทธิภาพมากกว่าก็ตาม โปรแกรมพรีเฟตเชอร์ทำงานโดยการตรวจสอบข้อมูลที่ถูกเข้าถึงระหว่างกระบวนการบูต (รวมถึงข้อมูลที่อ่านจากตารางไฟล์หลักของ NTFS ) และบันทึกไฟล์ติดตามกิจกรรมนี้ โปรแกรมบูตเฟตเชอร์จะยังคงตรวจสอบกิจกรรมดังกล่าวต่อไปจนกว่าจะครบ 30 วินาทีหลังจากที่เชลล์ของผู้ใช้เริ่มต้น หรือจนกว่าจะครบ 60 วินาทีหลังจากที่บริการทั้งหมดเริ่มต้นเสร็จสิ้น หรือจนกว่าจะครบ 120 วินาทีหลังจากที่ระบบบูตเสร็จสมบูรณ์ แล้วแต่ว่าเหตุการณ์ใดจะเกิดขึ้นก่อน โปรแกรมพรีเฟตเชอร์สามารถวิเคราะห์หน่วยความจำเสมือนและไฟล์เพจเพื่อพิจารณาว่าไฟล์ไบนารีใดควรถูกโหลด ล่วงหน้า

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

การดึงข้อมูลแอปพลิเคชันล่วงหน้าทำงานในลักษณะเดียวกัน แต่จะจำกัดเฉพาะการเริ่มต้นของแอปพลิเคชันเดียวเท่านั้น โดยจะตรวจสอบเฉพาะกิจกรรมในช่วง 10 วินาทีแรกเท่านั้น[ 1 ] : 458

โปรแกรมพรีเฟตช์จะจัดเก็บไฟล์ติดตามไว้ในโฟลเดอร์ "Prefetch" ภายในโฟลเดอร์ Windows (โดยทั่วไปคือC:\Windows\Prefetch) ชื่อไฟล์ติดตามการบูตจะมีชื่อเสมอNTOSBOOT-B00DFAAD.PFและไฟล์ติดตามแอปพลิเคชันจะเป็นการรวมกันของชื่อไฟล์ปฏิบัติการของแอปพลิเคชัน เครื่องหมายขีดกลาง ค่าแฮชเลขฐานสิบหกของพาธที่ไฟล์นั้นอยู่ และนามสกุล ".pf" แอปพลิเคชันที่โฮสต์ส่วนประกอบอื่นๆ (เช่นMicrosoft Management Consoleหรือ Dllhost) จะมีชื่อของส่วนประกอบที่โหลดรวมอยู่ในค่าแฮชที่คำนวณด้วย ส่งผลให้มีการสร้างไฟล์ติดตามที่แตกต่างกันสำหรับแต่ละส่วนประกอบ

โปรดทราบว่าTask Schedulerคือกระบวนการที่รับผิดชอบในการวิเคราะห์ข้อมูลการติดตามที่รวบรวมโดย prefetcher และเขียนไฟล์ไปยังไดเร็กทอรี prefetcher ดังนั้น prefetcher จะทำงานไม่ถูกต้องหากบริการ Task Scheduler ยังไม่เริ่มต้น

เพื่อปรับปรุงเวลาในการเข้าถึงให้ดียิ่งขึ้น Task Scheduler จะเรียกใช้Windows Disk Defragmenterทุกสามวัน เมื่อเครื่องไม่ได้ใช้งาน รายการไฟล์และไดเร็กทอรีที่ถูกอ้างอิงระหว่างกระบวนการบูตและการเริ่มต้นแอปพลิเคชันจะถูกประมวลผล[ 1 ] : 461–462 ผลลัพธ์ที่ประมวลผลแล้วจะถูกเก็บไว้Layout.iniในไดเร็กทอรี Prefetch และจะถูกส่งต่อไปยัง Disk Defragmenter เพื่อสั่งให้จัดเรียงไฟล์เหล่านั้นใหม่ให้อยู่ในตำแหน่งตามลำดับบนฮาร์ดไดรฟ์จริง

วิธีนี้จะช่วยเพิ่มประสิทธิภาพการทำงานให้ดียิ่งขึ้น โดยลดระยะทางที่หัวอ่านของฮาร์ดไดรฟ์ต้องเคลื่อนที่จากไฟล์หนึ่งไปยังอีกไฟล์หนึ่งให้เหลือน้อยที่สุด

สามารถเริ่มกระบวนการจัดเรียงใหม่นี้ได้ (โดยการเรียกใช้ "Defrag.exe %systemdrive% -b" จากบรรทัดคำสั่ง) โดยไม่ต้องทำการจัดเรียงข้อมูลแบบเต็มรูปแบบ

หากติดตั้งระบบบนไดรฟ์โซลิดสเตท ReadyBoost จะถูกปิดใช้งาน

การกำหนดค่า

การกำหนดค่าของ Prefetcher จะถูกจัดเก็บไว้ในWindows Registryที่HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters. ค่า EnablePrefetcher สามารถตั้งค่าเป็นค่าใดค่าหนึ่งต่อไปนี้: [ 5 ]

  • 0 = ปิดใช้งาน
  • 1 = เปิดใช้งานการดึงข้อมูลล่วงหน้าของแอปพลิเคชัน
  • 2 = เปิดใช้งานการดึงข้อมูลล่วงหน้าสำหรับการบูต (ค่าเริ่มต้นบนWindows Server 2003เท่านั้น) [ 6 ]
  • 3 = เปิดใช้งานการดึงข้อมูลล่วงหน้าสำหรับแอปพลิเคชันและการบูต (ค่าเริ่มต้นใน Windows เวอร์ชันเดสก์ท็อป) [ 5 ]

ค่าที่แนะนำคือ3 [ 5 ]ค่าที่สูงกว่า3 จะไม่เพิ่มประสิทธิภาพ และการ เปลี่ยนค่าเป็น2จะไม่ทำให้ Windows บูตเร็วขึ้น[ 5 ]

การปรับแต่งพรีเฟตเชอร์ที่ไม่ถูกต้อง

การปรับแต่งแอปพลิเคชัน "/prefetch:1" [ 8 ]มักพบได้บนอินเทอร์เน็ต[ 7 ]ซึ่งเป็นสวิตช์ที่ถูกต้องแต่เข้าใจผิด ใช้เพื่อแยกความแตกต่างระหว่างโหมดการทำงานที่แตกต่างกันของไฟล์ปฏิบัติการในกรณีที่โหมดที่แตกต่างกันเหล่านั้นจะมีร่องรอยการดึงข้อมูลล่วงหน้าที่แตกต่างกันอย่างมาก[ 9 ]

ความเชื่อผิดๆ ข้อที่สองคือ ผู้ใช้ควรลบเนื้อหาในโฟลเดอร์ prefetch เพื่อเพิ่มความเร็วให้กับคอมพิวเตอร์ หากทำเช่นนั้น Windows จะต้องสร้างไฟล์ prefetch ทั้งหมดขึ้นมาใหม่ ซึ่งจะ ทำให้ Windows ช้าลงระหว่างการบูตและการเริ่มต้นโปรแกรม จนกว่าไฟล์ prefetch จะถูกสร้างขึ้นใหม่ เว้นแต่จะปิดใช้งาน prefetcher [ 10 ] [ 11 ] [ 12 ] Windows จะเก็บไฟล์ prefetch ไว้ในโฟลเดอร์ Prefetch สำหรับโปรแกรมที่เปิดใช้งานล่าสุดมากถึง 128 โปรแกรม[ 13 ]

ดูเพิ่มเติม

  • คู่มือ Windows Prefetcher
  • การดึงข้อมูลล่วงหน้าหรือการดึงข้อมูลขั้นสูง
  • Windows Prefetch Parser ถูกเก็บถาวรเมื่อวันที่ 4 มิถุนายน 2011 ที่Wayback Machineเป็นเครื่องมือฟรีที่สามารถใช้งานได้บน Windows, Linux หรือ Mac OS-X
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Prefetcher&oldid=1341179939 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ตัวดึงข้อมูลล่วงหน้า

Prefetcher เป็นส่วนประกอบของ Microsoft Windows ซึ่งเปิดตัวใน Windows XP [ 1 ] เป็น ส่วนประกอบของ ระบบย่อย Session Manager ที่สามารถเร่ง กระบวนการ บูต ของ Windows...

ภาพรวม

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

การกำหนดค่า

การกำหนดค่าของ Prefetcher จะถูกจัดเก็บไว้ใน Windows Registry ที่ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters . ค่า EnablePrefetcher สามารถตั้งค่าเป็นค่าใดค่าหนึ่งต่อไปนี้: [ 5 ]

การปรับแต่งพรีเฟตเชอร์ที่ไม่ถูกต้อง

การปรับแต่งแอปพลิเคชัน "/prefetch:1" [ 8 ] มักพบได้บนอินเทอร์เน็ต [ 7 ] ซึ่งเป็นสวิตช์ที่ถูกต้องแต่เข้าใจผิด...