Windows는 파일에서 특정 작업을 수행하는 데 걸리는 시간을 어떻게 결정합니까?


10

Windows가 파일에 대한 작업을 수행하는 데 걸리는 시간, 즉 삭제, 복사, 삭제 또는 설치에 소요되는 시간을 결정하는 데 사용하는 방정식이 있는지 알고 싶었습니다.

여기에 이미지 설명을 입력하십시오

예를 들어, 파일을 삭제하고 Windows에서 "남은 시간 : 18 초"라고하면이 숫자를 어떻게 계산하고 무엇을 사용합니까?


1
이 숫자는 종종 틀리기 때문에 삭제하는 파일 # 개, 크기 및 속도를 기준으로 추측 한 것으로 추정값을 늘리거나 줄입니다.
cybernard

1
@Ramhound 그리고 얼마나 빨리 걸리는지 어떻게 알 수 있습니까? SSD, HD에서 실행되는 컴퓨터를 포함하여 다른 모든 컴퓨터에 동일한 정적 변수입니까? 200GB의 램이 있으면 어떻게합니까? 10MB의 RAM이 있으면 어떻게합니까? 동작이 얼마나 "빠른"지를 어떻게 계산합니까?
yuritsuki

2
@imreallyfamecore 기본 아이디어는 몇 초 동안 얼마나 빠르게 진행되는지 측정하고 나머지 프로세스는 평균적으로 같은 속도로 계속 될 것이라고 가정합니다. 평균 속도가 시간이 지남에 따라 변하면 추정값을 조정합니다 (유명한 "Windows에서 10 분 후에 복사되며 이미 2 시간이 걸렸다"고 알려짐). 그러나 추측에 불과합니다-OS 또는 응용 프로그램 이 실제로 얼마나 오래 걸릴지 를 알 수있는 방법이 없습니다. HDD가 손상되면 어떻게합니까? 아니면 네트워크를 통해 전송하고 있습니까? 아니면 조각화가 많이 있습니까?
Luaan

6
나는 이것에 대해 벌을 받는다는 것을 안다. 그러나 나는 나 자신을 도울 수 없다. 이것은 당신의 대답이 아닙니다. XKCD : 추정
KlaymenDK

10
코드 :timeLeft = random(1,100);
MadTux

답변:


20

일반적으로 처음 몇 초 동안 견적을 제공하지 않는다는 것을 알고 계셨습니까?

그것은 첫 번째 초에 수행해야 할 작업을 수행하기 때문입니다. 그런 다음 (작은) 시간이 지나면 이미 복사 / 삭제 한 등의 시간소요 시간을 알 수 있습니다. 그것은 당신에게 평균 작업 속도 를 제공합니다 .

그런 다음 나머지 바이트를 속도로 나누면 작업을 완료하는 데 시간이 걸립니다.

이것은 초등학교 수학입니다. 360km를 여행하고 있고 1 분이 지난 후 1km를 여행했다면 목적지까지 얼마나 걸립니까?

음, 속도는 1km / 분입니다. 60km / h입니다. 360km을 60km / h로 나누면 6 시간 (또는 360km / 1km / 분 = 360 분 = 6 시간)이됩니다. 이미 1 분 동안 여행 했으므로 남은 예상 시간은 5 시간 59 분입니다.

"travel"을 "copy"로 바꾸고 "km"를 "bytes"로 바꾸면 문제가됩니다.

시스템마다 시간을 추정하는 방법이 다릅니다. 마지막 순간이 걸릴 수 있으며 추정치가 크게 다를 수 있거나 풀 타임으로 시간이 걸릴 수 있으며 실제로 속도가 영구적으로 변경되면 추정치가 실제와 크게 다를 수 있습니다. 내가 설명한 것은 가장 간단한 방법입니다.


12
명확히하기 위해 : 이것이 Windows 가하는 방식이라고 주장하고 있습니까? 아니면 답을 얻을 수있는 간단한 산술 만 설명하고 있습니까?
Shredderroy

10
마지막으로 표시하는 동안 1%걸립니다 time so far * rand[0 - 10]few seconds left
Mark

1
관심이 있으시다면,이 질문은 Windows (및 OSX)가 진행률 표시 줄에 남은 시간을 포맷하는 방법을 알려줍니다. ux.stackexchange.com/q/23624
Richard

1
나는 이것이 Windows가 어떻게하는지 말하고 있지 않습니다. 이것이 정확히 이렇게된다면 우연의 일치입니다. 그것은 마치 겉으로는 보이지만 이것은 답변을 얻을 수있는 방법입니다. 포스터는 이것이 어떻게 수행되는지 알고 싶었고 Windows가 예로 제공되었습니다. 하나의 크기에 맞는 모든 상수에 나머지 크기를 곱한 것은 (그가 제안한대로) 완전히 실현 가능하지 않으며 이러한 추정이 어떻게 이루어 졌는지 전혀 알지 못했다고 생각합니다.
Valmiky Arquissandas

4
@ValmikyArquissandas : Microsoft의 Windows 팀 개발자 인 Raymond Chen은이 알고리즘을 자신의 블로그에 게시하여 확인하고 왜 잘못된 지 설명합니다. blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx
Richard

1

간단한 교차 곱셈으로 대답하는 것은 끔찍한 일이라고 생각합니다. 나는 그가 이미 알고 있다고 확신합니다. 이것은 우리가 머리 속의 것들을 끊임없이 추측하는 방법입니다.

파일 작업 진행률 표시 줄의 문제는 균일 한 데이터에 대해서만 정확하므로 모든 크기가 동일한 100 개의 파일을 복사하고 드라이브에서 다른 작업을 수행하지 않으면 예상 진행률이 표시되지만 첫 번째 경우에는 어떻게됩니까? 99 개의 파일은 작은 txt 파일이고 마지막 파일은 큰 비디오 파일입니까? 진행이 중단됩니다.

이 문제는 한 폴더의 파일을 처리하지 않고 여러 개의 하위 폴더를 처리 할 때 더욱 증가합니다. 하위 폴더가 5 개 있고 삭제하려는 경우 (이 경우 크기는 중요하지 않음) 처음 4 개 폴더에는 10 개 미만의 파일 만 포함되므로 작업이 5 번째 폴더에 도달 할 때까지는 80 % 완료되었으며 5 번째 폴더에 5000 개의 파일이 포함되어 있으며 진행률이 1 %로 되돌아갑니다.

WinXP는 미리 파일 수를 세어이 문제를 해결하려고 시도했습니다. 즉, 파일 수에 따라 Windows에서 폴더가 색인화되지 않았을 때 XP는 실제로 처음 20 초 동안 작업을 시작하지 않았습니다. 모두가 분노하게 만들었습니다.

따라서 Windows가 어떻게하는지에 대한 특별한 지식이 없지만 (파일과 바이트 수와 다른 점은 무엇입니까) 결함이있는 이유와 왜 완벽하지 않은지를 설명 할 수 있기를 바랍니다.

최선의 방법은 파일 수 또는 바이트 수에만 의존하지 않고 둘 중 평균을 만드는 것입니다.

또는 당신이 더 미쳐 가고 싶다면 OS는이 작업이 컴퓨터에서 과거에 걸린 시간에 대한 데이터베이스를 시작하고 그것을 방정식으로 고려할 수 있습니다.

최종 생각 : 누군가가 모든 폴더의 크기를 먼저 계산하지 않고 OS에 알릴 수있는 파일 시스템을 생각한다면 적어도 폴더의 일부가 아닌 전체 폴더를 삭제할 때 올바른 진행 예측을 얻을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.