Windows가 파일에 대한 작업을 수행하는 데 걸리는 시간, 즉 삭제, 복사, 삭제 또는 설치에 소요되는 시간을 결정하는 데 사용하는 방정식이 있는지 알고 싶었습니다.
예를 들어, 파일을 삭제하고 Windows에서 "남은 시간 : 18 초"라고하면이 숫자를 어떻게 계산하고 무엇을 사용합니까?
timeLeft = random(1,100);
Windows가 파일에 대한 작업을 수행하는 데 걸리는 시간, 즉 삭제, 복사, 삭제 또는 설치에 소요되는 시간을 결정하는 데 사용하는 방정식이 있는지 알고 싶었습니다.
예를 들어, 파일을 삭제하고 Windows에서 "남은 시간 : 18 초"라고하면이 숫자를 어떻게 계산하고 무엇을 사용합니까?
timeLeft = random(1,100);
답변:
일반적으로 처음 몇 초 동안 견적을 제공하지 않는다는 것을 알고 계셨습니까?
그것은 첫 번째 초에 수행해야 할 작업을 수행하기 때문입니다. 그런 다음 (작은) 시간이 지나면 이미 복사 / 삭제 한 등의 시간 과 소요 시간을 알 수 있습니다. 그것은 당신에게 평균 작업 속도 를 제공합니다 .
그런 다음 나머지 바이트를 속도로 나누면 작업을 완료하는 데 시간이 걸립니다.
이것은 초등학교 수학입니다. 360km를 여행하고 있고 1 분이 지난 후 1km를 여행했다면 목적지까지 얼마나 걸립니까?
음, 속도는 1km / 분입니다. 60km / h입니다. 360km을 60km / h로 나누면 6 시간 (또는 360km / 1km / 분 = 360 분 = 6 시간)이됩니다. 이미 1 분 동안 여행 했으므로 남은 예상 시간은 5 시간 59 분입니다.
"travel"을 "copy"로 바꾸고 "km"를 "bytes"로 바꾸면 문제가됩니다.
시스템마다 시간을 추정하는 방법이 다릅니다. 마지막 순간이 걸릴 수 있으며 추정치가 크게 다를 수 있거나 풀 타임으로 시간이 걸릴 수 있으며 실제로 속도가 영구적으로 변경되면 추정치가 실제와 크게 다를 수 있습니다. 내가 설명한 것은 가장 간단한 방법입니다.
1%
걸립니다 time so far * rand[0 - 10]
few seconds left
간단한 교차 곱셈으로 대답하는 것은 끔찍한 일이라고 생각합니다. 나는 그가 이미 알고 있다고 확신합니다. 이것은 우리가 머리 속의 것들을 끊임없이 추측하는 방법입니다.
파일 작업 진행률 표시 줄의 문제는 균일 한 데이터에 대해서만 정확하므로 모든 크기가 동일한 100 개의 파일을 복사하고 드라이브에서 다른 작업을 수행하지 않으면 예상 진행률이 표시되지만 첫 번째 경우에는 어떻게됩니까? 99 개의 파일은 작은 txt 파일이고 마지막 파일은 큰 비디오 파일입니까? 진행이 중단됩니다.
이 문제는 한 폴더의 파일을 처리하지 않고 여러 개의 하위 폴더를 처리 할 때 더욱 증가합니다. 하위 폴더가 5 개 있고 삭제하려는 경우 (이 경우 크기는 중요하지 않음) 처음 4 개 폴더에는 10 개 미만의 파일 만 포함되므로 작업이 5 번째 폴더에 도달 할 때까지는 80 % 완료되었으며 붐 5 번째 폴더에 5000 개의 파일이 포함되어 있으며 진행률이 1 %로 되돌아갑니다.
WinXP는 미리 파일 수를 세어이 문제를 해결하려고 시도했습니다. 즉, 파일 수에 따라 Windows에서 폴더가 색인화되지 않았을 때 XP는 실제로 처음 20 초 동안 작업을 시작하지 않았습니다. 모두가 분노하게 만들었습니다.
따라서 Windows가 어떻게하는지에 대한 특별한 지식이 없지만 (파일과 바이트 수와 다른 점은 무엇입니까) 결함이있는 이유와 왜 완벽하지 않은지를 설명 할 수 있기를 바랍니다.
최선의 방법은 파일 수 또는 바이트 수에만 의존하지 않고 둘 중 평균을 만드는 것입니다.
또는 당신이 더 미쳐 가고 싶다면 OS는이 작업이 컴퓨터에서 과거에 걸린 시간에 대한 데이터베이스를 시작하고 그것을 방정식으로 고려할 수 있습니다.
최종 생각 : 누군가가 모든 폴더의 크기를 먼저 계산하지 않고 OS에 알릴 수있는 파일 시스템을 생각한다면 적어도 폴더의 일부가 아닌 전체 폴더를 삭제할 때 올바른 진행 예측을 얻을 수 있습니다.