Πώς τα Windows προσδιορίζουν το χρόνο που απαιτείται για την εκτέλεση μιας ενέργειας με ένα αρχείο;
Οι εκτιμήσεις «χρόνου που παραμένουν» στα Windows είναι αρκετές για να οδηγήσουν κάποιον τρελό κατά περιόδους, αλλά έχετε αναρωτηθεί ποτέ πώς τα Windows καθορίζουν εκείνες τις στιγμές; Η σημερινή δημοσίευση Q & A της SuperUser έχει μερικές απαντήσεις για μια περίεργη, αλλά απογοητευμένη, ερώτηση του αναγνώστη.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.
Windows 8.1 screenshot παράθυρο μεταφοράς εικόνας ευγένεια του im πραγματικά famecore.
Το ερώτημα
Ο αναγνώστης του SuperUser 'im really famecore' θέλει να μάθει πώς τα Windows καθορίζουν το χρόνο που θα χρειαστεί για να εκτελέσετε μια εργασία με ένα αρχείο:
Ήθελα να μάθω αν υπάρχει μια εξίσωση που χρησιμοποιεί τα Windows για να καθορίσει πόσο χρόνο χρειάζεται για να εκτελέσετε μια ενέργεια με ένα αρχείο όπως: διαγραφή, αντιγραφή, διαγραφή ή εγκατάσταση.
Για παράδειγμα, όταν διαγράψω ένα αρχείο και λέει τα Windows Χρόνος παραμονής: 18 δευτερόλεπτα, πώς υπολογίζει αυτόν τον αριθμό και τι χρησιμοποιεί για να τον υπολογίσει?
Χρησιμοποιούν τα Windows μια ειδική εξίσωση για να καθορίσουν το χρόνο που απομένουν για να εκτελέσουν μια λειτουργία ή προσφέρουν απλώς μια εκτίμηση "καλύτερης εκτίμησης"?
Η απάντηση
Οι συνεργάτες του SuperUser Valmiky Arquissandas και Richard έχουν την απάντηση για εμάς. Πρώτα επάνω, Valmiky Arquissandas:
Έχετε παρατηρήσει ότι συνήθως δεν σας δίνει εκτιμήσεις κατά τα πρώτα δευτερόλεπτα?
Αυτό οφείλεται στο γεγονός ότι κατά τη διάρκεια των πρώτων δευτερολέπτων, κάνει ακριβώς τη λειτουργία που πρέπει να κάνει. Στη συνέχεια, μετά από ένα σύντομο χρονικό διάστημα, ξέρει πόσα έχει ήδη αντιγράψει / διαγράψει / κτλ, και πόσο καιρό πήρε. Αυτό σας δίνει το μέση ταχύτητα της επιχείρησης.
Στη συνέχεια, διαιρέστε τα υπόλοιπα bytes από την ταχύτητα και έχετε το χρόνο που θα χρειαστεί για να ολοκληρωθεί η λειτουργία.
Αυτό είναι μαθηματικό δημοτικό σχολείο. Αν θέλετε να ταξιδέψετε 360 χλμ. Και στο τέλος της πρώτης στιγμής που έχετε ταξιδέψει 1 χλμ., Πόσο χρόνο θα σας φτάσει για να φτάσετε στον προορισμό σας?
Λοιπόν, η ταχύτητα είναι 1 χλμ. / Λεπτό, έτσι ώστε να είναι 60 χλμ. / Ώρα. 360 χλμ. Διαιρούμενο με 60 χλμ. / Ώρα, σας δίνει μια εκτιμώμενη ώρα 6 ωρών (ή 360 χλμ. / 1 χλμ. / Λεπτό = 360 λεπτά = 6 ώρες). Δεδομένου ότι έχετε ήδη ταξιδέψει για ένα λεπτό, τότε ο αναμενόμενος χρόνος είναι 5 ώρες και 59 λεπτά.
Αντικατάσταση ταξίδι με αντίγραφο, km με bytes, και αυτό απαντά στην ερώτησή σας.
Τα διαφορετικά συστήματα έχουν διαφορετικούς τρόπους εκτίμησης του χρόνου. Μπορείτε να πάρετε την τελευταία στιγμή και οι εκτιμήσεις μπορεί να ποικίλουν άγρια. Ή μπορείτε να πάρετε το πλήρες ωράριο, και αν η ταχύτητα στην πραγματικότητα αλλάζει μόνιμα, οι εκτιμήσεις σας μπορεί να είναι μακριά από την πραγματικότητα. Αυτό που περιέγραψα είναι η απλούστερη μέθοδος.
Ακολουθούμενη από την απάντηση του Richard:
Αν σας ενδιαφέρει, αυτή η ερώτηση σας λέει πώς τα Windows και OSX διαμορφώνουν το χρόνο που απομένει στη γραμμή προόδου, αφού έχει μια ιδέα για πόσο καιρό έχει παραμείνει.
Κατά τη συντόμευση των διαλόγων χρονικών εκφράσεων σε εξέλιξη, θα πρέπει να στρογγυλοποιούνται προς τα επάνω ή προς τα κάτω?
Ο Raymond Chen, ένας προγραμματιστής της ομάδας των Windows στη Microsoft, επιβεβαιώνει αυτόν τον αλγόριθμο (δείτε την απάντηση του Valmiky παραπάνω) σε μια ανάρτηση στο ιστολόγιό του. Εξηγεί επίσης γιατί μπορεί να είναι λάθος.
Γιατί το παράθυρο διαλόγου αντιγραφής δίνει τέτοιες φρικτές εκτιμήσεις?
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.