Szacunki „pozostałego czasu” w systemie Windows wystarczają, aby czasami doprowadzić każdego do szaleństwa, ale czy kiedykolwiek zastanawiałeś się, jak system Windows określa te czasy? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedzi na ciekawe, ale sfrustrowane pytanie czytelnika.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser — pododdziału Stack Exchange, społecznościowej grupy witryn internetowych z pytaniami i odpowiedziami.
Zrzut ekranu okna przesyłania plików w systemie Windows 8.1 dzięki uprzejmości jestem naprawdę sławny.
Pytanie
Czytnik SuperUser „im naprawdę famecore” chce wiedzieć, w jaki sposób system Windows określa czas potrzebny na wykonanie operacji na pliku:
Chciałem wiedzieć, czy istnieje równanie, którego system Windows używa do określenia, ile czasu zajmuje wykonanie akcji na pliku, takiej jak: usuwanie, kopiowanie, kasowanie lub instalowanie.
Na przykład, gdy usuwam plik, a system Windows mówi Pozostały czas: 18 sekund, w jaki sposób oblicza tę liczbę i czego używa do jej obliczania?
Czy system Windows używa specjalnego równania do określenia czasu pozostałego do wykonania operacji, czy po prostu podaje „najlepsze przypuszczenie”?
Odpowiedź
Współtwórcy SuperUser Valmiky Arquissandas i Richard mają dla nas odpowiedź. Po pierwsze, Valmiky Arquissandas:
Czy zauważyłeś, że zwykle nie podaje żadnych szacunków w ciągu pierwszych kilku sekund?
To dlatego, że w ciągu pierwszych kilku sekund po prostu wykonuje operację, którą musi wykonać. Potem, po krótkim czasie, wie ile zostało już skopiowanych/usuniętych/itd, i jak długo to zajęło. To daje ci Średnia prędkość operacji.
Następnie podziel pozostałe bajty przez szybkość i masz czas potrzebny na ukończenie operacji.
To jest matematyka w szkole podstawowej. Jeśli chcesz przejechać 360 km, a pod koniec pierwszej minuty przejechałeś 1 km, ile czasu zajmie Ci dotarcie do celu?
Cóż, prędkość wynosi 1 km/minutę, czyli 60 km/godz. 360 km podzielone przez 60 km/h daje szacunkowy czas na 6 godzin (lub 360 km / 1 km/min = 360 minut = 6 godzin). Ponieważ podróżowałeś już przez minutę, szacowany pozostały czas to 5 godzin i 59 minut.
Zastąp travel kopią, km bajtami, a to odpowiada na twoje pytanie.
Różne systemy mają różne sposoby szacowania czasu. Możesz zająć ostatnią chwilę, a szacunki mogą się bardzo różnić. Możesz też poświęcić cały czas, a jeśli prędkość rzeczywiście zmieni się na stałe, twoje szacunki mogą być dalekie od rzeczywistości. To, co opisałem, jest najprostszą metodą.
Następnie odpowiedź od Richarda:
Jeśli jesteś zainteresowany, to pytanie powie Ci, jak system Windows i OSX formatuje pozostały czas na pasku postępu, gdy tylko zorientuje się, ile czasu pozostało.
Czy skracając wyrażenia czasu w oknach dialogowych postępu, należy je zaokrąglać w górę czy w dół?
Raymond Chen, programista w zespole Windows w firmie Microsoft, potwierdza ten algorytm (zobacz odpowiedź Valmiky powyżej) we wpisie na swoim blogu. Wyjaśnia również, dlaczego może być źle.
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange? Sprawdź pełny wątek dyskusji tutaj.