เพียงเพื่อจุดไฟในคำถามที่ฉันได้ทำในเครื่องเสมือนที่แก้ไขไม่ได้ขั้นตอนต่อไป:
- บู๊ต SystemRescueCD และติดตั้งพาร์ติชัน windows
- รายการไฟล์ทั้งหมดบนดิสก์ไปยังไฟล์บันทึก (น้อยกว่าหนึ่งนาที)
- รีบูตเข้าสู่ Windows
- ปล่อยให้
cleanmgr
ทำงานและจดบันทึกเวลา (มากกว่าแปดชั่วโมง)
- รีบูตเข้าสู่ SystemRescueCD และติดตั้งพาร์ติชัน windows
- รายการไฟล์ทั้งหมดบนดิสก์ไปยังไฟล์บันทึกอื่น (น้อยกว่าหนึ่งนาที)
- รีเซ็ตกลับเครื่องเสมือนที่ไม่สามารถแก้ไขได้
- รีบูตเข้าสู่ Windows
- ทำ FOR / F ... เพื่อลบไฟล์ดังกล่าวในพรอมต์คำสั่งผู้ดูแลระบบ (cmd) และจดบันทึกเวลา (น้อยกว่าห้านาที)
โปรดทราบฉันเริ่มระบบใหม่บน Linux SystemRescueCd เพื่อให้สามารถแสดงรายการไฟล์ทั้งหมดรวมถึงไฟล์ที่ค้นหาโดย Window และทำรายการดังกล่าวให้เร็วที่สุดเท่าที่จะทำได้ (ไม่มีการตรวจสอบ acl และอื่น ๆ )
นอกจากนี้โปรดทราบว่าเมื่อcleanmgr
ฉันนับเวลาเท่านั้นหลังจากการค้นหาสิ้นสุดลง (การค้นหาตัวเองใช้เวลานานกว่าหกชั่วโมง)
ดังนั้นการลบไฟล์ไม่ใช่คอลบ็อต (การลบเองต้องการเพียงห้านาที แต่cleanmgr
ใช้เวลามากกว่าแปดชั่วโมง)
การลบด้วยตนเองสามารถทำได้อย่างรวดเร็วเนื่องจากโฮสต์เป็น Linux ความเร็วนั้นเกิดขึ้นเนื่องจาก Linux แคชทั้งหมดเขียนไปยังไฟล์ขนาดคงที่ที่ใช้เป็นดิสก์บนเครื่องเสมือน (24GiB) และเนื่องจากฉันมี 64GiB ของ RAM และฉันปล่อยให้ Windows 16GiB มันไม่จำเป็นต้องใช้ SWAP ทั้ง PAGEFILE.SYS; ยิ่งกว่านั้น Linux สามารถเก็บไฟล์เต็มรูปแบบบน RAM (ฉันทดสอบกับไฟล์นั้นบน RAM และลบเวลาที่ทำไปมาก แต่cleanmgr
เวลาไม่ลดลง)
ใช่ถ้าฉันใส่ดิสก์เสมือนทั้งหมดบน RAM cleanmgr
เวลาจะไม่ลดลง แต่ถ้าฉันจัดการลบไฟล์เวลานั้นก็ลดลงเพียงเล็กน้อย (Linux เขียนแคชดีมากเมื่อคุณมี RAM 64GiB อยู่)
การกำหนดค่าของฉันสำหรับการทดสอบ:
- โฮสต์: ลินุกซ์ 64 บิตกระจายอยู่เหนือฮาร์ดแวร์ที่ชิ้นส่วนหลักคือ AMD Deca Core 5GHz พร้อม RAM 64GiB และคอนโทรลเลอร์ Sata Raid0 พร้อมด้วย WD VelociRaptor HDD สองตัว 300MiB / s) ค่าใช้จ่าย> หมื่นยูโร
- แขก: Windows 10 Home พร้อม RAM ขนาด 16GiB และดิสก์เสมือน 24GiB
Test1: การมีดิสก์เสมือน 24GiB บนฮาร์ดดิสต์ทางกายภาพ Test2: การมีดิสก์เสมือน 24GiB บน RAM โฮสต์ Linux
ฉันกลัวว่าcleanmgr
จะทำบางสิ่งบางอย่างในรีจิสทรีของ windows ต่อไฟล์ที่ถูกลบ (การเข้าถึงรีจิสทรีต่ำมาก)
จอภาพที่ฉันมี:
- การใช้ CPU ในโฮสต์ Linux และ Windows Guest (เวลาส่วนใหญ่ระหว่าง 0% ถึง 1% โดยมีการ pikes 5% ไม่มาก)
- การใช้งาน HDD บนโฮสต์ Linux (ใกล้ 0% เมื่อ
cleanmgr
ทำงานด้วย pikes 2%) แคชดิสก์ของ Linux ดีมาก ๆ ที่หลีกเลี่ยงการส่ง dato ไปยังดิสก์จริง
- การใช้งาน HDD ในแขกของ Windows (เวลาส่วนใหญ่ระหว่าง 2% ถึง 15% เมื่อ
cleanmgr
ทำงานโดยมี pikes 28%)
เห็นได้ชัดว่าcleanmgr
กำลังทำงานที่ตรวจจับไม่ได้มากมายบางทีเวลานอนหลับ? อาจจะไม่ใช่ถ้ามันเป็นค่ารีจิสทรี, ซีพียูที่ไม่ได้ถูกนับด้วยจอภาพ Windows, HDD ที่ไม่ได้ใช้ (รีจิสตรีอยู่ใน RAM) เป็นต้นและการเข้าถึงรีจิสตรีแต่ละครั้งอาจใช้เวลานานกว่า .. ลองใช้โปรแกรมของคุณเองเพื่อเข้าถึงรีจิสตรีโดยการเปิดรีจิสตรีและปิดมันต่อการกระทำแต่ละครั้งเมื่อเปิด HK * ขึ้นมา ... มันแตกต่างกันมาก
ดังนั้นถ้าcleanmgr
ทำสำหรับแต่ละไฟล์:
- เปิดรีจิสตรี HK *
- ศึกษาสิ่งที่ต้องการและ / หรือเขียนบางอย่างในรีจิสทรี
- ปิดรีจิสตรี HK *
อาจใช้เวลามากถึงสองหรือสามวินาทีต่อการดำเนินการหนึ่งครั้งและหากใช้การดำเนินการหนึ่งไฟล์ต่อหนึ่งไฟล์อาจใช้เวลาเกือบหนึ่งชั่วโมงต่อหนึ่งพันไฟล์แต่ละไฟล์ ... จำนวนไฟล์ของฉันนั้นมากกว่า 40000 ไฟล์เล็กน้อย ดังนั้นไฟล์ 40000 ไฟล์ / 8 ชั่วโมงกำลังประมวลผลหนึ่งไฟล์ในแต่ละ 1.3 วินาที ... ในอีกด้านหนึ่งการลบไฟล์ในสคริปต์ (หลังจากรู้ไฟล์แล้ว) ใช้เวลาน้อยกว่าห้านาทีซึ่งจะลบประมาณ 133 ต่อวินาที ... hufe ข้อแตกต่าง
ดังนั้นcleanmgr
เวลาแน่นอนไม่ได้เกิดจากตัวdeletion
มันเอง! มันทำอะไรอีก? กรุณา M $ ปรับปรุงความเร็วนั้น!