Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows

MTE Giải thích: Thanh tiến trình hoạt động như thế nào và tại sao chúng thường không chính xác

MTE Giải thích: Thanh tiến trình hoạt động như thế nào và tại sao chúng thường không chính xác

Kể từ GUI đầu tiên trong Windows, chúng ta đã sống với thực tế của các thanh tiến trình (progress bar). Chúng luôn như một người bạn lười biếng, nói rằng họ gần xong việc rồi khi, thực tế, họ có thể còn xa mới xong. Có cảm giác bực bội lấp đầy bạn khi đọc "99%" trên thanh tiến trình trong khi nó nói rằng còn một giây để hoàn thành nhiệm vụ, suốt năm phút trôi qua. Chúng tôi hiểu sự bực bội của bạn, đó là lý do tôi sẽ giải thích chính xác tại sao những điều này xảy ra.

Trước Hết, Hãy Xem Thanh Tiến Trình Hoạt Động Như Thế Nào

Một thanh tiến trình được tạo bằng cách gắn một hộp thoại và đặt một thanh trong đó. Thanh đó lấp đầy theo phần trăm tiến độ hoàn thành nhiệm vụ, do đó có tên "thanh tiến trình". Lập trình viên làm thanh tiến trình chạy bằng cách gán các cột mốc nhất định trong quá trình nhiệm vụ cho một phần trăm. Vì vậy, khi thanh tiến trình đạt đến phần ba của nhiệm vụ chứa 100 phần, nó biết nó chỉ phải lấp đầy 3 phần trăm.

Đôi khi, lập trình viên cũng có thể đặt bộ hẹn giờ trên thanh tiến trình. Điều này sẽ (luôn luôn không chính xác) xác định bao nhiêu thời gian một nhiệm vụ cụ thể sẽ mất cho đến khi hoàn thành. Sử dụng ví dụ trước, giả sử ba phần đầu tiên trong nhiệm vụ 100 phần được làm trong ba giây. Đó để lại một phút 37 giây (tổng 97 giây) còn lại. Nhưng những thứ này chỉ hoạt động trong một thế giới hoàn hảo. Tôi sẽ giải thích bên dưới.

Tại Sao Thanh Bị Mắc Kẹt

Thanh tiến trình nổi tiếng vì bị mắc kẹt ở những điểm nhất định. Thực sự rất bực bội, nhưng có lý do đằng sau tất cả sự điên rồ đó. Khi thanh tiến trình đo lường tiến độ của một nhiệm vụ, nó sử dụng một số tiêu chí nhất định. Ví dụ, giả sử chúng ta đang sao chép 1.000 tệp. Mỗi tệp trong số đó có thể có kích thước khác nhau. Một số người sẽ chia 1.000 cho 100. Nghe hay, nhưng không tính đến sự khác biệt về kích thước tệp. Một số tệp có thể vài MB, trong khi những cái khác lên tới 10 GB!

MTE Giải thích: Thanh tiến trình hoạt động như thế nào và tại sao chúng thường không chính xác

Bạn cũng có thể chia tổng kích thước tất cả tệp cho 100. Nghe thực tế và chính xác hơn, nhưng nó vẫn là một cái chết. Phương pháp không tính đến biến động tốc độ ổ cứng khi sao chép các loại tệp khác nhau, hoặc khi sao chép tệp trong khi thực hiện các nhiệm vụ ngắn khác. Cuối cùng, bạn kết thúc với một thanh chỉ cho bạn thấy bạn đã đi bao xa, nhưng không cho biết bạn phải đợi bao lâu cho nhiệm vụ kết thúc.

Ổ cứng có xu hướng sao chép tệp nhỏ hơn (hoặc lớn hơn nhưng bị phân mảnh vật lý) chậm hơn so với sao chép các khối dữ liệu lớn hơn. Đó là vì quá trình tìm kiếm các đoạn mới trong đĩa vật lý phiền toái hơn khi truy cập 100 tệp nhỏ so với quá trình truy xuất hai khối lớn của tệp lớn. Cũng có thể nói tương tự về các mục đăng ký. Chúng khác nhau về độ dài và độ phức tạp.

Một Số Suy Nghĩ Cuối Cùng

Thực tế hầu như mọi thứ trên máy tính của bạn có nhiều biến số gắn liền đến mức không thể xác định chính xác tiến độ của một nhiệm vụ. Bạn bị bỏ lại một thanh vô dụng trên màn hình chỉ để ngăn bạn ném cái bấm. Cuộc chiến kết thúc. Máy tính cứng đầu của bạn sẽ luôn thắng bất kỳ nỗ lực nào dự đoán chính xác điều mà, trong chân không, sẽ hoàn thành kịp thời. Bạn thực sự không thể làm gì về thanh tiến trình, nhưng ít nhất bạn biết tại sao chúng hành động theo cách gây bực bội đó!

À, và đây là một trò chơi thú vị liên quan đến thanh tiến trình: Progress Wars.

Nếu bạn nghĩ ra cách chính xác hơn để dự đoán nhiệm vụ, hãy chắc chắn để lại bình luận bên dưới!

Dark loading or progress bar by BigStockPhoto