Windows ใช้เวลานานแค่ไหนในการดำเนินการกับไฟล์


10

ฉันต้องการทราบว่ามีสมการที่ Windows ใช้เพื่อกำหนดว่าต้องใช้เวลานานเท่าใดในการดำเนินการกับไฟล์พูดลบลบคัดลอกลบหรือติดตั้ง

ป้อนคำอธิบายรูปภาพที่นี่

ตัวอย่างเช่นเมื่อฉันลบไฟล์และ Windows บอกว่า "เวลาที่เหลือ: 18 วินาที" มันคำนวณเลขนี้อย่างไรและใช้อะไร


1
เนื่องจากจำนวนนี้ผิดบ่อยครั้งมันจึงคาดเดาได้จาก # ไฟล์ที่จะลบขนาดและความเร็วที่การลบถูกกำหนดเวลาเพื่อเพิ่มหรือลดการคาดเดา
cybernard

1
@ แรมฮาวด์และมันรู้ได้อย่างไรว่ามันต้องใช้เวลารวดเร็วขนาดไหน? มันเป็นตัวแปรคงที่เหมือนกันสำหรับเครื่องอื่น ๆ ทั้งหมดรวมถึงตัวที่ทำงานบน SSD, HD จะเป็นอย่างไรถ้าฉันมี RAM 200 GB จะเกิดอะไรขึ้นถ้าฉันมี RAM 10 MB มันคำนวณได้อย่างไรว่าการกระทำแบบ "ด่วน" เป็นอย่างไร?
yuritsuki

2
@imreallyfamecore เอาล่ะความคิดพื้นฐานก็คือมันวัดว่ามันไปได้เร็วแค่ไหนในสองสามวินาทีและคิดว่าส่วนที่เหลือของกระบวนการจะดำเนินต่อไปด้วยความเร็วเดียวกันโดยเฉลี่ย หากความเร็วเฉลี่ยเปลี่ยนแปลงไปตามกาลเวลามันจะปรับค่าประมาณ (นำไปสู่ความน่าอับอาย "Windows บอกฉันว่ามันจะถูกคัดลอกภายใน 10 นาทีและผ่านไปแล้ว 2 ชั่วโมง!") มันเป็นเพียงการคาดเดา - ไม่มีทางที่ OS หรือแอปพลิเคชันใดจะรู้ว่าต้องใช้เวลานานเท่าใด เกิดอะไรขึ้นถ้า HDD เกิดความเสียหาย หรือคุณกำลังถ่ายโอนผ่านเครือข่าย หรือมีการกระจายตัวของจำนวนมาก?
Luaan

6
ฉันรู้ว่าฉันจะถูกลงโทษ แต่ฉันก็ไม่สามารถช่วยตัวเองได้ นี่ไม่ใช่คำตอบของคุณ XKCD: การประมาณราคา
KlaymenDK

10
รหัส:timeLeft = random(1,100);
MadTux

คำตอบ:


20

คุณสังเกตเห็นว่าโดยปกติแล้วจะไม่ให้การประมาณใด ๆ ในวินาทีแรกหรือไม่?

นั่นเป็นเพราะในวินาทีแรกมันแค่ทำการดำเนินการที่มันต้องทำ จากนั้นหลังจากที่ (เล็ก ๆ ) ในขณะที่มันรู้เท่าใดก็คัดลอกแล้ว / ถูกลบ / etcและนานเท่าใดจึง ที่ให้ความเร็วเฉลี่ยของการทำงาน

จากนั้นหารไบต์ที่เหลือด้วยความเร็วและคุณมีเวลาที่จะทำให้การดำเนินการเสร็จสมบูรณ์

นี่คือคณิตศาสตร์ระดับประถม หากคุณต้องการเดินทาง 360 กม. และในตอนท้ายของนาทีแรกที่คุณเดินทาง 1 กม. คุณจะไปยังจุดหมายปลายทางของคุณเท่าไหร่

ความเร็วก็คือ 1 กม. / นาที นั่นคือ 60 กม. / ชม. 360 กม. หารด้วย 60 กม. / ชม. ให้คุณ 6 ชั่วโมง (หรือ 360 กม. / 1 ​​กม. / นาที = 360 นาที = 6 ชั่วโมง) เนื่องจากคุณได้เดินทางไปแล้วหนึ่งนาทีดังนั้นเวลาที่เหลือโดยประมาณคือ 5 ชั่วโมง 59 นาที

ทดแทน "การเดินทาง" ด้วย "คัดลอก" และ "กม." ด้วย "ไบต์" และนั่นคือคำถามของคุณ

ระบบที่ต่างกันมีวิธีประมาณเวลาที่แตกต่างกัน คุณสามารถใช้เวลาในนาทีสุดท้ายและการประมาณการอาจแตกต่างกันอย่างดุเดือดหรือคุณอาจใช้เวลาเต็มและถ้าความเร็วเปลี่ยนไปอย่างถาวรจริง ๆ การประมาณการของคุณอาจอยู่ไกลเกินความเป็นจริง สิ่งที่ฉันอธิบายเป็นวิธีที่ง่ายที่สุด


12
เพื่อชี้แจง: คุณยืนยันว่านี่เป็นวิธีการที่ Windows ใช้หรือไม่ หรือคุณเพียงแค่แสดงเลขคณิตง่ายๆด้วยวิธีที่จะได้คำตอบ?
Shredderroy

10
และเป็นครั้งสุดท้ายที่1%ใช้ time so far * rand[0 - 10]ในขณะที่แสดงfew seconds left
Mark

1
หากคุณสนใจคำถามนี้จะบอกคุณว่า Windows (และ OSX) จัดรูปแบบเวลาที่เหลือในแถบความคืบหน้าได้อย่างไรเมื่อมีความคิดเกี่ยวกับระยะเวลาที่เหลืออยู่ux.stackexchange.com/q/23624
Richard

1
ฉันไม่ได้บอกว่านี่เป็นวิธีที่ Windows ทำ ถ้ามันเป็นแบบนี้มันเป็นเรื่องบังเอิญ ดูเหมือนว่าจะเป็น แต่นี่เป็นวิธีที่จะได้คำตอบ ฉันคิดว่าโปสเตอร์ต้องการทราบวิธีการทำสิ่งนี้และ Windows ได้รับเป็นตัวอย่าง หนึ่งขนาดเหมาะกับทุกอย่างคงที่คูณด้วยขนาดที่เหลืออยู่ (ตามที่เขาเสนอ) เป็นไปไม่ได้อย่างสมบูรณ์และฉันคิดว่ามันเปิดเผยว่าเขาไม่มีเงื่อนงำว่าการประเมินเหล่านี้ถูกสร้างขึ้นมาอย่างไร
Valmiky Arquissandas

4
@ValmikyArquissandas: Raymond Chen (นักพัฒนาในทีม Windows ที่ Microsoft) ยืนยันขั้นตอนวิธีนี้ในการโพสต์บนบล็อกของเขาและยังอธิบายว่าทำไมมันจึงผิด blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx
Richard

1

การตอบโต้ด้วยการคูณข้ามอย่างง่ายนั้นทำให้ฉันคิดว่าฉันมั่นใจว่าเขารู้อยู่แล้วว่ามันเป็นวิธีที่เราคาดเดาสิ่งต่าง ๆ ในหัวของเราเช่นกัน

ปัญหาของแถบความคืบหน้าของการดำเนินการกับไฟล์คือมันถูกต้องสำหรับข้อมูลที่เป็นรูปแบบเดียวกันดังนั้นหากคุณคัดลอกไฟล์ 100 ไฟล์ที่มีขนาดเท่ากันทั้งหมดและไดรฟ์ของคุณไม่ทำอะไรเลยความคืบหน้าโดยประมาณจะเป็นจริง 99 ไฟล์เป็นไฟล์ txt ขนาดเล็กและไฟล์สุดท้ายเป็นไฟล์วิดีโอขนาดใหญ่? ความคืบหน้าจะถูกปิด

ปัญหานี้จะเพิ่มขึ้นอีกเมื่อคุณไม่ได้จัดการไฟล์ในโฟลเดอร์เดียว แต่มีหลายโฟลเดอร์ย่อย สมมติว่าคุณมีโฟลเดอร์ย่อย 5 โฟลเดอร์และคุณต้องการลบออก (ขนาดไม่สำคัญในกรณีนี้) โฟลเดอร์ 4 โฟลเดอร์แรกมีไฟล์น้อยกว่า 10 ไฟล์ดังนั้นเมื่อถึงเวลาที่การดำเนินการมาถึงโฟลเดอร์ที่ 5 ที่คิดว่ามันเกี่ยวกับ 80% ทำและบูมโฟลเดอร์ที่ 5 มี 5000 ไฟล์และความคืบหน้าของคุณกระโดดกลับถึง 1%

WinXP พยายามหลีกเลี่ยงสิ่งนี้โดยการนับจำนวนไฟล์ล่วงหน้าซึ่งหมายความว่าเมื่อโฟลเดอร์ไม่ได้จัดทำดัชนีใน windows ขึ้นอยู่กับจำนวนไฟล์ XP ไม่ได้เริ่มการทำงานจริงในช่วง 20 วินาทีแรก (เวลาที่ใช้ไป นับ) ซึ่งทำให้ทุกคนโมโห

ดังนั้นในขณะที่ฉันยังไม่มีความรู้พิเศษเกี่ยวกับวิธีการที่ Windows ทำ (แต่มีอะไรนอกเหนือจากการนับไฟล์และไบต์) ฉันหวังว่าฉันจะอธิบายได้ว่าทำไมมันถึงมีข้อบกพร่องและทำไมมันจึงไม่สมบูรณ์แบบ

ดีที่สุดที่คุณสามารถทำได้คือไม่ต้องพึ่งพา filecount หรือ bytecount เพียงอย่างเดียว แต่สร้างค่าเฉลี่ยจากสองสิ่งนี้

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

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

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