KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
tl;dr: I want to predict file copy completion. What are good methods given the start time and the current progress? Firstly, I am aware that this is not at all a simple problem, and that predicting the future is difficult to do well. For context, I'm trying to predict the completion of a long file copy. Current Approach: At the moment, I'm using a fairly naive formula that I came up with myself: (ETC stands for Estimated Time of Completion) ETC = currTime + elapsedTime * (totalSize - sizeDone) / sizeDone This works on the assumption that the remaining files to be copied will do so at the average copy speed thus far, which may or may not be a realistic assumption (dealing with tape archives here). PRO: The ETC will change gradually, and becomes more and more accurate as the process nears completion. CON: It doesn't react well to unexpected events, like the file copy becoming stuck or speeding up quickly. Another idea: The next idea I had was to keep a record of the progress for the last n seconds (or minutes, given that these archives are supposed to take hours), and just do something like: ETC = currTime + currAvg * (totalSize - sizeDone) This is kind of the opposite of the first method in that: PRO: If the speed changes quickly, the ETC will update quickly to reflect the current state of affairs. CON: The ETC may jump around a lot if the speed is inconsistent. Finally I'm reminded of the control engineering subjects I did at uni, where the objective is essentially to try to get a system that reacts quickly to sudden changes, but isn't unstable and crazy. With that said, the other option I could think of would be to calculate the
Tags (comma-separated)
Save Edits
Cancel