프리페처

Prefetcher

프리페처는 Windows [1]XP에서 도입된 Microsoft Windows의 컴포넌트입니다.메모리 매니저의 컴포넌트로, Windows기동 프로세스를 고속화해, 프로그램의 기동 시간을 단축할 수 있습니다.애플리케이션 부팅 시 애플리케이션에 필요한 파일을 RAM에 캐싱하여 디스크 읽기를 통합하고 디스크 검색을 줄임으로써 이를 실현합니다.이 기능은 미국 특허 6,633,968로 [2][3]커버되었습니다.

Windows Vista 이후 Prefetcher는 SuperFetch ReadyBoost에 의해 확장되었습니다.SuperFetch는 애플리케이션 사용 패턴을 일정 기간 감시 및 적응하고 필요한 대부분의 파일과 데이터를 사전에 메모리에 캐싱하여 필요할 때 매우 빠르게 액세스할 수 있도록 함으로써 애플리케이션 실행 시간을 단축하려고 합니다.ReadyBoost(활성화된 경우)는 USB 플래시 드라이브와 같은 외장 메모리를 사용하여 컴퓨터에 설치된 RAM 용량을 초과하여 시스템 캐시를 확장합니다.ReadyBoost에는 시스템에 700MB 이상의 [4]RAM이 있는 경우 부팅 프로세스의 Prefetcher를 대체하는 ReadyBoot라는 구성 요소도 있습니다.

개요

Windows 시스템을 기동하면, 많은 파일의 컴포넌트를 메모리로 읽어내 처리할 필요가 있습니다.같은 파일의 다른 부분(예: 레지스트리 하이브)이 다른 시간에 로드되는 경우가 많습니다.그 결과 단일 액세스가 더 효율적이긴 하지만 파일 간에 여러 번 '점핑'하고 다시 돌아오는데 상당한 시간이 소요됩니다.프리페처는 부트 프로세스 중에 액세스되는 데이터(NTFS 마스터 파일 테이블에서 읽은 데이터 포함)를 감시하고 이 작업의 추적 파일을 기록하는 방식으로 작동합니다.부트 페처는 사용자의 셸이 시작된 후 30초 후 또는 모든 서비스가 초기화가 완료된 후 60초 후 또는 시스템 부팅 후 120초 후 중 먼저 경과할 때까지 이러한 액티비티를 계속 감시합니다.

이후 부팅에서는 이 트레이스 파일에 기록된 정보를 사용하여 보다 효율적인 방법으로 코드와 데이터를 로드할 수 있습니다(즉, 디스크 읽기의 순서를 변경하여 동일한 파일에 여러 번 액세스할 필요성을 최소화하거나 제거함으로써 디스크 헤드의 이동을 최소화할 수 있습니다).

애플리케이션 프리페치는 같은 방법으로 동작하지만, 대신에 단일 애플리케이션의 기동에 현지화됩니다.처음 10초간의 액티비티만 [1]: 458 감시됩니다.

프리페처는 트레이스 파일을 Windows 폴더내의 「프리페치」폴더에 보존합니다(통상,C:\Windows\Prefetch부트 트레이스 파일의 이름은 항상NTOSBOOT-B00DFAAD.PF및 응용 프로그램 트레이스 파일은 응용 프로그램의 실행 파일 이름, 하이픈, 파일이 상주하는 경로의 해시를 16진수로 표현하고 확장자를 .pf로 연결한 것입니다.다른 컴포넌트(Microsoft Management Console 또는 Dllhost 등)를 호스트하는 응용 프로그램에는 로드된 컴포넌트의 이름도 계산 해시 내에 포함되어 있습니다.그 결과 컴포넌트마다 다른 트레이스 파일이 생성됩니다.

태스크 스케줄러는 프리페처가 수집한 트레이스 데이터를 해석하여 프리페처 디렉토리에 파일을 쓰는 프로세스입니다.따라서 태스크 스케줄러 서비스가 시작되지 않으면 프리페처가 제대로 작동하지 않습니다.

액세스 시간을 개선하기 위해 작업 스케줄러는 3일마다 Windows 디스크 조각 모음을 호출합니다.머신이 아이돌 상태일 경우 부트 프로세스 및 애플리케이션 부팅 중에 참조된 파일 및 디렉토리 목록이 [1]: 461–462 처리됩니다.처리된 결과는 다음 위치에 저장됩니다.Layout.ini프리페치 디렉토리에서 파일을 순서대로 물리 하드 드라이브에 배치하도록 지시하는 디스크 조각 모음으로 전달됩니다.

이렇게 하면 하드 드라이브 헤드를 한 파일에서 다음 파일로 이동해야 하는 거리를 최소화하여 성능을 더욱 향상시킬 수 있습니다.

("Defrag"를 실행하여) 이 순서를 변경할 수 있습니다.exe %systemdrive% -b")를 실행합니다.[citation needed]

시스템이 솔리드 스테이트 드라이브에 인스톨 되어 있는 경우는, Superfetch 는 무효가 되어 있습니다만, 통상의 프리페치는 [citation needed]유효하게 되어 있습니다.

배열

프리페처의 설정은, 다음의 Windows 레지스트리에 보존됩니다.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParametersEnable Prefetcher 값은 다음 [5]중 하나로 설정할 수 있습니다.

  • 0 = 디세이블
  • 1 = 애플리케이션 프리페치 활성화
  • 2 = 부팅 프리페치가 활성화됨(Windows Server 2003의 경우에만 [6]기본값).
  • 3 = 애플리케이션 및 부팅 프리페치가 활성화됨(기본값).[5]

권장치는 [5]3 입니다.값이 3보다 크더라도 성능이 향상되지 않으며 값을 2로 변경해도 Windows 부팅 속도가 [5]빨라지지 않습니다.

프리페처의 잘못된 조정

인터넷에서[7] 자주 볼 수 있는 것은 "/prefetch:1" 어플리케이션의 수정입니다.[8]이것은 유효하지만 잘못 인식된 스위치입니다.이러한 다른 모드의 프리페치트레이스가 [9]현저하게 다른 경우에 대비하여 실행 파일의 다른 동작 모드를 구별하기 위해 사용됩니다.

두 번째 속설은 컴퓨터 속도를 높이기 위해 사용자가 프리페치 폴더 내용을 삭제해야 한다는 것입니다.이 경우 프리페처가 [10][11][12]비활성화되지 않는 한 Windows는 모든 프리페치파일을 다시 작성해야 합니다.따라서 프리페치파일이 생성될 때까지 부팅 시 Windows의 속도가 느려집니다.Windows 에서는, 최근 기동한 최대 128개의 [13]프로그램에 대해서, 프리페치 파일을 프리페치 폴더에 보관 유지합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c Russinovich, Mark; David Solomon (2005). "Memory Management". Microsoft Windows Internals (4th ed.). Microsoft Press. pp. 458–462. ISBN 0-7356-1917-4.
  2. ^ 미국 특허 6,633,968
  3. ^ "Archived copy". Archived from the original on 2008-05-16. Retrieved 2008-02-23.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  4. ^ Windows Vista 커널 내부
  5. ^ a b c d http://home.comcast.net/~지원CD/XPMys.html#최적화
  6. ^ http://www.microsoft.com/whdc/archive/XP_kernel.mspx
  7. ^ "Misinformation and the Prefetch Flag". Funny, It Worked Last Time. MSDN Blogs. 25 May 2005. Retrieved 2008-12-09. [...] this has appeared on so many, many, many sites to be urban legend. {{cite web}}:외부 링크 quote=(도움말)
  8. ^ "Misinformation and the Prefetch Flag". Funny, It Worked Last Time. MSDN Blogs. 25 May 2005. Retrieved 2008-12-09. Secondly, one can specify a /prefetch:#flag when launching an app. [...] Some sites have guessed that this switch turns on prefetching, and suggest that you add that to every executable you care about [...]
  9. ^ "Misinformation and the Prefetch Flag". Funny, It Worked Last Time. MSDN Blogs. 25 May 2005. Retrieved 2008-12-09. Both guesses are incorrect. The /prefetch:# flag is looked at by the OS when we create the process -- however, it has one (and only one) purpose. We add the passed number to the hash. Why? [~snip~]
  10. ^ Gralla, Preston (2007). Big Book of Windows Hacks. "O'Reilly Media, Inc.". ISBN 978-0-596-52835-5.
  11. ^ "Beware of Bogus XP Advice".
  12. ^ "Windows XP: Kernel Improvements Create a More Robust, Powerful, and Scalable OS". Archived from the original on 2008-05-16. Retrieved 2008-02-23.
  13. ^ "Misinformation and the Prefetch Flag". Funny, It Worked Last Time. MSDN Blogs. 25 May 2005. Retrieved 2008-12-09. For one thing, XP will just re-create that data anyway; secondly, it trims the files anyway if there's ever more than 128 of them so that it doesn't needlessly consume space.

외부 링크