กล่องโต้ตอบการคัดลอกไฟล์ Windows: เพราะเหตุใดการประเมินจึง… BAD


38

การประเมิน

xkcd

ฉันรู้ว่ากล่องโต้ตอบการคัดลอก Windows (ใน Windows XP) เก็บสำเนาไว้ในหน่วยความจำก่อนและยังคงมีการคัดลอกหลังจากกล่องโต้ตอบปิดลงดังนั้นเวลาจึงปิด แต่ทำไมการประเมินเวลาจึงใช้เวลาทำสำเนา ไม่ถูกต้องถึงแม้ว่าการคัดลอกหน่วยความจำถูกปิดใช้งาน (ใน Vista และ Windows 7)? ดูเหมือนว่าโดยพลการ! กระบวนการคัดลอกทั้งหมดทำงานอย่างไรและเหตุใด Windows จึงไม่สามารถประมาณการได้อย่างถูกต้อง



แถบความคืบหน้าแสดง # ของไฟล์ที่เสร็จสมบูรณ์ไม่ใช่เวลา% เสร็จสมบูรณ์ fyi
ปัจจัย Mystic


3
นอกจากนี้สิ่งนี้ควรใช้กับระบบปฏิบัติการใด ๆไม่ใช่เฉพาะ Windows เพราะฉันเชื่อว่าข้อ จำกัด นั้นเป็นสากล
Clockwork-Muse

1
สิ่งที่ควรทราบอีกอย่างคือบล็อกโพสต์ของ Mark Russinovich: blogs.technet.com/b/markrussinovich/archive/2008/02/04/…
surfasb

คำตอบ:


29

กล่าวโดยย่อ: อัลกอริธึมที่ไม่ดีและการประเมินที่น่ากลัวนั้นเป็นจุดอ่อนของการนำไปใช้จริง

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

อะไรที่ยาก:

  1. คุณต้องคำนึงถึงความผันผวนของทรัพยากร (CPU / แบนด์วิดธ์เครือข่าย / ความเร็ว HDD ส่วนใหญ่)
  2. คุณต้องคาดการณ์เวลาที่ใช้ในการคาดเดาพฤติกรรม (สิ่งที่สำเนาของไฟล์ Windows ทำตอนนี้ไม่ดีอย่างแน่นอน)
  3. ปรับเวลาตามเวลาที่คุณคาดการณ์ไว้ (ฉันหมายถึงการปรับเปลี่ยนเล็กน้อยไม่เหมือนในภาพตลกด้านบน!)

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

บทสนทนานี้ทำให้ฉันเป็นบ้าไปได้สองสามครั้ง:

  • บนระบบ WinNT รุ่นเก่าหากคุณมีไฟล์ขนาดเล็กจำนวนมากที่จะคัดลอกมันจะแสดงชื่อและภาพเคลื่อนไหวที่ดีสำหรับแต่ละไฟล์ที่ทำให้กระบวนการทั้งหมดช้าลงเพื่อให้ใช้งานไม่ได้จริง

สิ่งที่คัดลอก Windows ที่ทันสมัยไม่ดีขึ้นมาก:

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

น่าสนใจมาก!
Maxim Zaslavsky

48

Raymond Chen เขียนบทความที่ดีมากเกี่ยวกับเรื่องนี้ครั้งเดียว โดยพื้นฐานแล้วกล่องโต้ตอบกำลังคาดเดา :)

http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx

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

นี่คือการเปรียบเทียบ: สมมติว่ามีคนบอกคุณว่า "ฉันจะนับเป็น 100 และคุณจะต้องให้การประเมินอย่างต่อเนื่องว่าฉันจะทำเสร็จเมื่อใด" พวกเขาเริ่มจาก "หนึ่งสองสาม ... " คุณสังเกตเห็นว่าพวกเขากำลังไปที่หมายเลขหนึ่งต่อวินาทีดังนั้นคุณประมาณ 100 วินาที เอ่อ - ตอนนี้พวกเขากำลังชะลอตัวลง "สี่ ... ... ... ห้า ... ... ... " "ตอนนี้คุณต้องเปลี่ยนค่าประมาณเป็น 200 วินาที ตอนนี้พวกเขาเร็วขึ้น: "หกเจ็ดเจ็ดแปดเก้า" คุณต้องปรับปรุงประมาณการของคุณอีกครั้ง

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

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


8
การเปรียบเทียบที่เขาให้สามารถสรุปได้ในหนึ่งคำ: สถิติ
surfasb

33

ฉันจะนับถึงสิบ1....2....3....4มีกี่จุดที่จะได้รับถึง 10

5.6.7แล้วตอนนี้ล่ะ? คุณคำนึงถึงจุดที่ผ่านมาทั้งหมดระหว่างตัวเลขและค่าเฉลี่ยคุณใช้ช่วงเวลา 4 ครั้งล่าสุดและใช้ค่าเฉลี่ยนั้นคุณดูเฉพาะช่วงเวลาสุดท้ายหรือไม่

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

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

ตัวอย่างที่ดีของด้านตรงข้ามคือ7-Zipเมื่อมันถูกบีบอัด หากความเร็วของการบีบอัดลดลงตามกระบวนการคุณจะเห็นว่า ETA ไม่กระโดดอย่างรวดเร็วเหมือนกับการถ่ายโอนไฟล์ ETA แต่อาจใช้เวลา 2 ถึง 3 วินาทีจริงก่อนที่ตัวจับเวลาจะติ๊กลงหนึ่งวินาที (หรืออาจเริ่มนับ ) จนกว่าจะคงที่ด้วยความเร็วใหม่


2
เอาชนะฉันว่าทำไมพวกเขาไม่ทำค่าเฉลี่ยเคลื่อนที่หรือเลขชี้กำลังปกติ ...
Mehrdad

@ Mehrdad ฉันคิดว่า windows รุ่นที่ใหม่กว่าทำเวลา ETA ทำงานมากขึ้นเช่น 7zip ใน Windows 7 และใหม่กว่า
Scott Chamberlain

15

จริงๆแล้วมีคำตอบที่เป็นที่ยอมรับโดย Raymond Chen จาก Microsoftเกี่ยวกับเรื่องนี้จาก WAAAAAY ย้อนกลับและมีปริศนาบางส่วน

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

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


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

2
ใช่มีคนในการแชทชี้ให้เห็นเช่นกัน ฉันอยากจะบอกว่าแก้ปัญหาของผู้ใช้ที่จ้องมองในเวลาที่จะเสร็จสมบูรณ์โดยให้เขากราฟสีสันให้จ้องมองแทน :)
Journeyman Geek

@JourneymanGeek รายงาน "คนที่อยู่บนแชท" ใน! แท้จริงแล้วในขณะนี้เป็นแหล่งเผด็จการสวยก็เป็นสิ่งสำคัญที่จะเก็บไว้ในใจว่ามันเป็นตั้งแต่ปี 2004 และเป็นที่ล้าสมัยอย่างหนักและมีแนวโน้มที่เพียงราง ๆ ที่เกี่ยวข้องกับขั้นตอนวิธีการในปัจจุบันในการใช้งานบน Windows 8
บ๊อบ

1
นี่คือโพสต์บล็อกที่เกี่ยวข้องใน Windows 8: "การประเมินเวลาที่เหลือในการทำสำเนานั้นแทบจะเป็นไปไม่ได้เลยที่จะทำอะไรกับความแม่นยำใด ๆ ... แทนที่จะลงทุนเวลาส่วนใหญ่ที่เกิดขึ้นด้วยการประเมินความเชื่อมั่นต่ำ ในปัจจุบันนี้เรามุ่งเน้นการนำเสนอข้อมูลที่เรามั่นใจเกี่ยวกับ ... "
Kelly Thomas

12

นี่คือคำอธิบายของRaymond Chenอาจารย์ใหญ่ฝ่ายออกแบบซอฟต์แวร์ของ Microsoft:

ทำไมกล่องโต้ตอบการคัดลอกให้การประมาณการที่น่ากลัว

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

นี่คือการเปรียบเทียบ: สมมติว่ามีคนบอกคุณว่า "ฉันจะนับเป็น 100 และคุณจะต้องให้การประเมินอย่างต่อเนื่องว่าฉันจะทำเสร็จเมื่อใด" พวกเขาเริ่มจาก "หนึ่งสองสาม ... " คุณสังเกตเห็นว่าพวกเขากำลังไปที่หมายเลขหนึ่งต่อวินาทีดังนั้นคุณประมาณ 100 วินาที เอ่อ - ตอนนี้พวกเขากำลังชะลอตัวลง "สี่ ... ... ... ห้า ... ... ... " "ตอนนี้คุณต้องเปลี่ยนค่าประมาณเป็น 200 วินาที ตอนนี้พวกเขาเร็วขึ้น: "หกเจ็ดเจ็ดแปดเก้า" คุณต้องปรับปรุงประมาณการของคุณอีกครั้ง

โพสต์บล็อกยกมาข้างต้นมีการอภิปรายที่ยาวนานของปัญหานี้มีความคิดเห็นที่น่าสนใจบาง

Raymond Chen เป็นบุคคลในตำนาน "Microsoft's Chuck Norris" ฉันไม่คิดว่าคุณจะได้รับคำตอบที่เชื่อถือได้มากขึ้น ฉันแน่ใจว่าเขาเห็นรหัสในคำถามอย่างน้อย


9

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

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

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

มีอัลกอริทึมการทำนาย ETA ที่ดีขึ้นและแย่ลง แต่สำหรับการทำนายที่แม่นยำคอมพิวเตอร์จะต้องรู้ทั้งหมด ความเสี่ยงในการพยายามสร้างอัลกอริทึม "อัจฉริยะ" คือมันอาจสร้างกรณีใหม่ที่ไม่คาดฝันซึ่งมันผิดมากขึ้น

กล่องโต้ตอบการคัดลอก Windows 8

กล่องโต้ตอบการคัดลอก Windows 8 2


4

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

มันไม่ได้เป็นข้อบกพร่องมากนักในการแสดงข้อมูลที่ไม่ค่อยแม่นยำ วิธีที่ดีที่สุดในการแก้ไขคือการหลับตา ไม่ต้องสนใจมัน ;-)

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


4

ฉันคิดว่าเหตุผลได้รับการอธิบายอย่างดีในความคิดเห็นของบล็อกโพสต์ที่เชื่อมโยงโดยคำตอบของ Roald:

มีอัลกอริทึมการประเมินที่น่ากลัว ไม่มีข้อแก้ตัว หากต้องคัดลอกไฟล์ 1,000KK 1 ไฟล์และไฟล์ 10 1MB มันคิดว่ามันจะยุ่งกับไฟล์ 1 MB เช่นเดียวกับไฟล์ 1KB

เหตุผลที่ทำให้การประมาณการที่น่ากลัวเช่นนี้ไม่ดี เห็นได้ชัดว่ามันไม่สามารถแม่นยำได้ 100% แต่อาจดีกว่ามาก


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

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

4

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

ปัญหาคือจำนวนเวลาที่ใช้ในการดำเนินการเขียนนั้นไม่คงที่ - จริง ๆ แล้วมันสามารถเปลี่ยนแปลงได้อย่างมาก ดังนั้นสิ่งนี้จึงก่อให้เกิดการเปลี่ยนแปลงที่สำคัญในการประมาณเวลา


ฉันไม่คิดว่าคุณค่อนข้างถูกต้องในเรื่องนี้ - คุณสามารถรักษาค่าเฉลี่ยของการเขียนที่ใช้งานได้โดยใช้ตัวเลขเพียง 2 - ค่าเฉลี่ยในปัจจุบัน [ A] และจำนวนจุดข้อมูลที่ใช้ในการรับค่าเฉลี่ย [ n] (A*n + [New value])/[n+1]แล้วที่จะปรับปรุงมันเป็นเพียงกรณีของ นอกจากนี้เนื่องจากการดำเนินการคัดลอกมักจะถูกผูกไว้กับ IO ไม่ใช่ผูกติดกับ CPU การคำนวณอย่างง่ายเช่นนั้นทุกสองสามวินาทีจึงไม่มีอะไร ในทางตรงกันข้ามการรักษาค่าเฉลี่ยของการnเขียนครั้งล่าสุดนั้นจำเป็นต้องมีอาร์เรย์ / คิว / สแต็กของnองค์ประกอบ - ดังนั้นคุณจึงรู้ว่าค่าใดที่จะต้องถูกขับไล่
พื้นฐาน

จุดดี! แล้วทำไมห่ามันถึงเป็นแบบนั้นแหละ? : P
Brian Gradin

ฉันคิดว่าพวกเขาพยายามฉลาดโดยทำค่าเฉลี่ยที่ตอบสนองได้ดีขึ้นโดยคำนึงถึงการเขียนเพียงไม่กี่ครั้งล่าสุดและเลือกน้อยเกินไป ที่กล่าวว่าฉันไม่มีแหล่งที่มาเพื่อใครจะรู้?
พื้นฐาน

4

มี 3 ปัจจัยที่ควรคำนึงถึง:

  1. ขนาดรวมของการถ่ายโอน
  2. จำนวนไฟล์ที่จะถ่ายโอน
  3. "ไม่ว่าง" ของสื่อและอาจเชื่อมต่อ

ดูเหมือนว่าหมายเลข 1 และ 3 จะมีผลชัดเจนที่สุดในการคำนวณเวลาการโอน แต่คนจำนวนมากไม่ได้คิดเลข 2 ซึ่งจะมีผลอย่างมากต่อระยะเวลาการถ่ายโอนและยากที่จะหาจำนวน

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

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


4

มีสามข้อบกพร่องในอัลกอริทึมการประเมินปัจจุบัน

ตรงกันข้ามกับความเชื่อที่ได้รับความนิยมพวกเขาเกือบจะไม่ยากพอที่จะยกมือขึ้น

เหตุผลที่คนส่วนใหญ่เขียนบล็อกและคนที่นี่ไม่ทราบถึงความเป็นไปได้นั้นดีที่สุดเท่าที่ฉันจะบอกได้เนื่องจากมีสาขาวิชาและสาขากว้าง วิธีการรักษาที่เรียบง่าย แต่สบาย ๆ น่าจะเป็นไปได้สำหรับ[ผู้สำเร็จการศึกษาที่มีการฝึกอบรมล่าสุดมากกว่าผู้เขียนบล็อก] [บริษัท ที่มีมูลค่าหลายพันล้านดอลลาร์] Microsoft

ฉันจะพยายามอธิบายอย่างคร่าว ๆ ว่าทำไม


จุดของความล้มเหลวมีดังนี้ เคอร์เนล:

1. ไม่สามารถทำนายการโหลด IO ในอนาคตได้อย่างน่าเชื่อถือเนื่องจากสถานการณ์อยู่นอกขอบเขตของเคอร์เนล

  • ไม่ควรทำอะไรเกี่ยวกับสิ่งนี้เนื่องจากเป็นปัญหา P = NP ที่ไม่ได้ จำกัด

2. ไม่ติดตามการวิเคราะห์พฤติกรรม IOในระดับรายละเอียดที่เป็นประโยชน์ การใช้ประโยชน์เป็นแนวคิดที่กว้างขึ้นกว่าดิสก์ / เครือข่ายการอ่าน / ความเร็วในการเขียน

  • จำเป็นต้องทำน้อยมากเกี่ยวกับเรื่องนี้น้อยกว่าการติดตามข้อมูลการใช้งาน IO ขั้นพื้นฐานที่สุด

    • จากดิสก์
      • มิติความเร็วในการอ่านเฉลี่ย1a
      • ความเร็วในการเขียนเฉลี่ยของมิติไฟล์2a
    • บนพื้นฐานควอนตัม * ตาม
      • ขนาดของไฟล์b
      • ตำแหน่งของไฟล์ในขนาดดิสก์
    • * ถูกนับเป็น [มีแนวโน้ม] ไม่เกิน 3 หมวดหมู่ การลดขนาดจะช่วยให้เรากำหนดได้แน่นอน แต่ 3 ควรมีมากสำหรับกลไกการทำนายที่ดีกว่าไม่มีอะไร:
      • ขนาดไฟล์
        • เบา
        • กลาง
        • หนัก
      • ที่ตั้ง [แจ้งการขอเวลาในการตอบสนอง]
        • จุดเริ่มต้น
        • กลาง
        • คุณได้รับคะแนน
      • ขนาดและที่ตั้งของไฟล์ซ้ำซ้อน / ทับซ้อนกับความเร็วในการอ่าน / เขียนนี่เป็นความตั้งใจ
    • เราจำเป็นต้องรู้ว่า "ยุ่ง" ดิสก์ได้รับเพื่อให้เราสามารถสันนิษฐานได้ว่ามันจะเป็นมิติที่ไม่ว่างต่อไป
      • คำนวณจากปริมาณของไฟล์ที่กำลังอ่านอ่านร่วมกับน้ำหนักที่เกี่ยวข้อง
      • ใช้ในการประมาณเวลาที่เริ่มต้นของการคัดลอก ...โต้ตอบขึ้นอยู่กับการโหลดที่คาดหวังในอนาคตหากทุกอย่างนอกเหนือจากกล่องโต้ตอบการคัดลอกนี้ยังคงดำเนินต่อไปตามที่เป็นอยู่ในขณะนี้
    • วิธีการบันทึกสำหรับวัตถุประสงค์ของการ ...นี่คือการจดสิทธิบัตร

3. พวกเขาถูกติดตามจะไม่ได้ใช้สำหรับการวิเคราะห์พฤติกรรม

  • มีการทำน้อยที่นี่ซึ่งเราทำงานส่วนใหญ่
  • นี่คือที่เราใส่ข้อมูลจาก # 2 เพื่อใช้
    • การวิเคราะห์เชิงสถิติอย่างคร่าวๆเกี่ยวกับน้ำหนักของไฟล์และที่ตั้งเพื่อกำหนดจำนวนกระโดดที่เรากำลังจะทำ น้ำหนัก + ตำแหน่งทำให้เราคาดการณ์ได้
    • รวมกับน้ำหนักและตำแหน่งที่ตั้งของโหลดดิสก์ปัจจุบัน
    • เพื่อประเมินสิ่งที่เราคิดว่าความเร็วในการอ่าน / เขียนโดยเฉลี่ยของจำนวนไฟล์มิติที่ fจะเป็น
    • ซึ่งเราเปรียบเทียบกับปรับแต่งโมเดลของเรา
    • ซึ่งจะช่วยให้เราประเมินแถบความคืบหน้าและเวลาให้เสร็จสมบูรณ์อย่างแม่นยำ
  • วิธีการวิเคราะห์สำหรับวัตถุประสงค์ของการทำนาย ...นี่คือการจดสิทธิบัตร

ประเด็นทั้งหมดนี้คือโมเดลของเรามีเพียง 2a = F * (bxc) + d ที่ซับซ้อน

โดยที่ a, b, และ c มี 3 สถานะแต่ละอัน: ตัวจัดการไฟล์แอบดูไฟล์ (หรือเพียงแค่เมทาดาทา) ก่อนที่จะทำการคัดลอกและ F * (bxc) + d ไม่ใช่การคำนวณที่มีราคาแพง ถ้าคุณต้องการบางสิ่งที่แม่นยำยิ่งขึ้นให้ใช้ตารางการค้นหาที่มีสถานะมากขึ้น - แทบจะไม่มีการคำนวณใด ๆ เลย

หมายเหตุ: ขนาดที่ใช้สำหรับแผ่นเสียงจะแตกต่างกับ SSD-- เริ่มต้น / กลาง / ท้ายไม่สำคัญ

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

(สิทธิบัตรถูกทิ้งไว้เป็นแบบฝึกหัดสำหรับผู้อ่าน ... )


@ Twisty ฉันเสร็จแล้วตอนนี้เป็นยังไงบ้าง?
paIncrease

ดีกว่ามาก ขอให้โชคดีในการใช้เว็บไซต์และขอบคุณที่เข้าร่วมชุมชน
ฉันพูดว่า Reinstate Monica

3

มีตัวแปร "ที่ไม่รู้จัก" มากมายเมื่อคุณพยายามที่จะทำนายว่าจะต้องใช้เวลานานแค่ไหน ตัวอย่างเช่นในขณะที่โปรแกรมรู้ว่ามีไฟล์ 3500 ไฟล์และไฟล์มีขนาด 3.5 GB (3500 MB) นั่นหมายความว่าแต่ละไฟล์มี 1 MB หรือไม่ ไม่จำเป็น. อาจมีไฟล์ 4 KB จำนวนมากและไฟล์ 100 MB จำนวนมากและบางไฟล์อยู่ระหว่างนั้น นอกจากนี้คุณต้องคำนึงถึงว่าไฟล์มาจากไหนและไปที่ไหน (เช่นสื่อ) คอขวดที่ใหญ่ที่สุดคืออะไร? บัญชีของคุณพยายามคัดลอกไฟล์จาก HDD ผ่านช่องทางVPN ได้อย่างไร คุณให้สถานการณ์กรณีที่ดีที่สุดแล้วปรับเคาน์เตอร์ของคุณในเวลาจริง นี่คือเหตุผลที่คุณเห็นว่ามาตรวัดความก้าวหน้าเหล่านั้นเปลี่ยนแปลงได้ทันที


2

แบบจำลองทางคณิตศาสตร์ที่ถูกต้องคือการหาค่าเฉลี่ยและการประมาณค่าจริง:

transfer speed = data copied / time elapsed
time remaining = data remaining / transfer speed

เหตุผลก็คือตามกฎจำนวนมากความผันผวนในท้องถิ่นจะถูกยกเลิกด้วยความเร็วการถ่ายโอนเฉลี่ยและสิ่งนี้จะให้ผลลัพธ์ที่มั่นคงที่สุดแก่คุณ

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


2
แบบจำลองของคุณจะจัดการกับสัญญาณรบกวนที่ใช้เวลาไม่นานเช่นเริ่มถ่ายโอนไฟล์แบบขนานและจะบอกฉันต่อไปว่าจะใช้เวลาอีก 5 นาทีแม้ว่าข้อมูลจำนวนเดียวกันจะใช้เวลาเพียง 20 นาที ค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนักอาจมีความแม่นยำมากขึ้น
Daniel Beck

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

2
ปัญหาของแบบจำลองของคุณคือว่ามันไม่ตอบสนองต่อการเปลี่ยนแปลงอัตราการถ่ายโอนตรงกลางผ่านการถ่ายโอน นี่จะไม่พอเพียงสำหรับการถ่ายโอนไฟล์ Windows ที่ตอบสนองอย่างรวดเร็วตัวอย่าง : การถ่ายโอน 60GB ที่ 10MB / s ในตอนแรก เวลาที่เหลือเมื่อเริ่มต้น: 100 นาที โอน 54GB แล้วปล่อยไปที่ 2MB / s หลังจาก 90 นาที:เวลาที่เหลืออยู่โดยประมาณคือ 54GB: 10 นาที เวลาจริงเหลืออยู่ที่ 54GB: 50 นาที หลังจาก 115 นาที : เวลาที่เหลือโดยประมาณคือ 57GB: 6 นาที เหลือเวลาจริงที่ 57GB: 25 นาที หลังจาก 131.67 นาที : เวลาที่เหลืออยู่โดยประมาณคือ 59GB: 2.23 นาที เวลาจริงเหลืออยู่ที่ 59GB: 8.33 นาที
Daniel Beck

@DanielBeck: การถ่ายโอนทั้งหมดใช้เวลา 150 นาทีดังนั้นข้อผิดพลาดสัมพัทธ์สูงสุดคือ 50% ในการเริ่มต้นการโอนซึ่งคุณไม่สามารถทำได้ดีกว่านี้ ที่ 54th GB นั้นลดลงเหลือ 14% (ถ้าคุณใช้เวลา 150 นาทีทำไมต้องใช้เวลาประมาณ 20 นาที) จริง ๆ แล้วเป็นการประมาณการที่ดีมาก ... นั่นคือฉันเข้าใจประเด็นของคุณ วิธีการปรับปรุงนี้ไม่ได้เป็นค่าเฉลี่ยเคลื่อนที่เนื่องจากคุณไม่สามารถทราบขนาดของหน้าต่างได้ (การดำเนินการนี้คาดว่าจะใช้เวลาหลายนาทีเช่นการคัดลอกไฟล์
ybungalobill

หรือชั่วโมงผ่านโปรโตคอลการแชร์ไฟล์ p2p ซึ่งคุณจะได้รับ 10 นาที 10 MB / s และ 10 นาทีจาก 0 MB / s) วิธีการปรับปรุงสิ่งนี้คือการหาค่าเฉลี่ยถ่วงน้ำหนักตามเวลาไม่ใช่ตามขนาด
ybungalobill

1
There is some way to refine or correct this kind of "bug"?

ดังที่ Roald van Doorn กล่าวว่ามันเป็นเพียงการคาดเดา แน่นอนว่านั่นไม่ได้หมายความว่ามันจะไม่เป็นการเดาที่ดีกว่า มีฮิวริสติกมากมายที่สามารถใช้ในการคำนวณได้

  1. วิธีที่ดีที่สุดวิธีที่แพงที่สุดคือการเก็บประวัติ 'สำเนา' ก่อนหน้านี้จากนั้นใช้อัลกอริทึมปัญญาประดิษฐ์เพื่อคำนวณการเดา
  2. เราสามารถสร้างสูตรขึ้นอยู่กับการวิจัยว่าควรใช้เวลานานแค่ไหน พวกเขาสามารถคำนึงถึงสิ่งต่าง ๆ เช่น: ระบบไฟล์, จำนวนไฟล์, ขนาดของไฟล์, เวลาในการค้นหาดิสก์, ความเร็วในการอ่าน / เขียนจำนวนมากของดิสก์, ตำแหน่งของไฟล์บนดิสก์ (การกระจายตัว), การใช้ดิสก์ในปัจจุบัน
  3. ส่วนผสมของทั้งสอง กล่าวคือ ทำเกณฑ์มาตรฐานบางอย่างเพื่อดูว่าการดำเนินการบางอย่างใช้เวลานานเท่าใดจากนั้นใช้สิ่งเหล่านั้นเป็นประวัติสำหรับสูตรง่าย ๆ

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

อย่างไรก็ตามหากคุณบีบอัดบางอย่างด้วย 7-zip คุณจะสังเกตเห็นว่าเป็นการเดาได้ดีกว่า windows ฉันสงสัยว่ามันกำลังทำอะไรบางอย่างที่ซับซ้อนเดาได้ยากกว่า


1

ในระยะสั้นการคำนวณจะขึ้นอยู่กับความเร็วในการโอนปัจจุบัน

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

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


1

มีคำตอบที่น่าสนใจในการโพสต์บล็อก MSDN การปรับปรุงพื้นฐานการจัดการไฟล์ของเรา: คัดลอกย้ายเปลี่ยนชื่อและลบเกี่ยวกับเรื่องนี้ ทำไมมันยาก:

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

และพวกเขาปรับปรุงอย่างไร

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

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

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

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


1

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


ในขณะที่น่าสนใจนี่ไม่ได้ตอบคำถาม อ่านวิธีการตอบก่อนตอบ
ผู้ใช้ 99572 นั้นใช้ได้

0

ฉันเพิ่งคัดลอก 200GB จาก USB HDD ไปยังไดรฟ์หลักของฉัน มีประมาณ 130000 ไฟล์

หลังจาก 4-5 นาทีแรกฉันสังเกตเห็นว่า:

  • สำหรับไฟล์ที่เล็กที่สุดอัตราคือประมาณ 100 ไฟล์ต่อวินาทีที่ประมาณ 600KB / s
  • และสำหรับไฟล์ขนาดใหญ่มันก็เหมือน 70MB / s

ที่หน้าต่างเริ่มต้นเปลี่ยนการประมาณจากเช่น 1 ชั่วโมงเป็น 5+ ชั่วโมงจากนั้นกลับไปเป็น 1 ชั่วโมงเป็นต้น ในตอนท้ายเช่น 95% มันก็ยังเปลี่ยนการประมาณจาก 10 นาทีเป็น 10+ ชั่วโมง ดังนั้นแทนที่จะแม่นยำมากขึ้นมันจะน้อยลงและแม่นยำน้อยลง

คณิตศาสตร์ง่าย ๆ แสดงให้เห็น:

130,000ไฟล์ที่100ไฟล์ต่อวินาที = 22นาที

200,000 MB ที่70 MB ต่อวินาที = 47นาที

22นาที - คลายเวลาค้นหาคัดลอกไฟล์ขนาดไม่กี่กิโลไบต์ 47นาที - เวลาที่จะต้องถ่ายโอนข้อมูลจริงหากไม่มีเวลาค้นหา

ผลรวมของ22 นาที + 47 นาทีเป็นเวลาสูงสุดที่แน่นอนซึ่งอาจใช้เวลา

เห็นได้ชัดว่าการประเมินควรอยู่ระหว่าง47ถึง69นาที

กล่องโต้ตอบแสดงที่ประมาณ 90%: "ฉันกำลังคัดลอกไฟล์ขนาดเล็กที่ 1MB / s มีข้อมูลเพิ่มขึ้น 20GB จะใช้เวลา 5:30 ชั่วโมงจึงจะเสร็จสมบูรณ์

ไม่กี่วินาทีต่อมา: "ฉันกำลังคัดลอกไฟล์ขนาดใหญ่ที่นี่ที่ 70mb / s จะใช้เวลา 4 นาทีจึงจะเสร็จสมบูรณ์

สิ่งที่มนุษย์เห็นจากกล่องโต้ตอบเดียวกันจริง ๆ : ไฟล์ 120,000 ไฟล์และ 180GB ถูกคัดลอกไปแล้ว 40 นาที ส่วนที่เหลืออีก 10,000 ไฟล์และ 20GB ควรใช้เวลาประมาณ 5 นาที

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

มันง่ายมากที่จะทำให้สมมติฐานที่ถูกต้องเพียงแค่ตั้งค่าขีด จำกัด บนและล่าง

ไดอะล็อกจะแสดงข้อมูลที่ถูกต้องมากขึ้นอีกเล็กน้อยเฉพาะในกรณีที่ไฟล์ขนาดใหญ่อยู่ก่อนไฟล์ขนาดเล็ก หากเป็นกรณีนี้มันเริ่มต้นที่ 40 นาทีและหลังจาก 30 นาทีก็จะเริ่มคัดลอกไฟล์ขนาดเล็กและพูดว่า "ดีฉันต้องการอีก 20 นาที"

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


สิ่งนี้ไม่ได้ตอบคำถาม
DavidPostill

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