Progress Bar มาตั้งแต่ GUI แรกของ Windows เหมือนเพื่อนขี้เลื่อนล่าช้า บอกว่า "เกือบเสร็จ" แต่นั่งรอ 5 นาที ที่ 99% ทำไมจึงไม่แม่นยำ? มาเข้าใจกัน
Progress Bar ทำงานอย่างไร
Programmer กำหนด Milestone ของงาน → Map เป็น % เช่น งาน 100 ส่วน ทำเสร็จ 3 ส่วน = 3% บางครั้งเพิ่ม Timer คาดเวลา (เช่น 3 ส่วนแรกใช้ 3 วิ → คิดต่อไป 97 ส่วน = 97 วิ) แต่นี่เป็นโลกอุดมคติ
ทำไม Progress Bar จึงค้าง/ไม่แม่นยำ
ตัวอย่าง: Copy 1,000 ไฟล์ ขนาดต่างกันมาก (บางไฟล์ MB บางไฟล์ 10 GB)
- หาร 1,000 / 100 = 1% ต่อ 10 ไฟล์ → ไม่คำนึงขนาดไฟล์
- หาร Total Size / 100 →
ดูดีกว่า แต่ ไม่คำนึงความเร็ว HDD ที่เปลี่ยนแปลง (Copy ไฟล์เล็กเยอะช้ากว่าไฟล์ใหญ่ เนื่องจาก Seek head บนแผ่นดิสก์) - Registry entries ความยาวซับซ้อนต่างกัน → ยากที่จะคาดการณ์
สรุป
ทุกอย่างในคอมพิวเตอร์มีตัวแปรเยอะเกินไป ไม่สามารถคาดการณ์ Progress ได้แม่นยำ Progress Bar มีอยู่แค่เพื่อไม่ให้เราหวาดร้าว คอมพิวเตอร์ชนะเสมอ เราแก้ไม่ได้ แต่น้อยใจน้อยลงเพราะเข้าใจสาเหตุแล้ว
เกมที่เกี่ยวข้อง: Progress Wars ลองเล่นดูครับ