프리페치
프리페치는 실제로 요청되기 전에 데이터를 가져와 메모리에 로드하는 최적화 기술입니다. 프리페치가 성공하면 애플리케이션이 더 느린 저장 디스크에서 데이터를 읽을 필요 없이 더 빠른 메모리 캐시에서 데이터에 액세스할 수 있으므로 성능이 향상되고 지연 시간이 줄어듭니다. 그러나 이를 위해서는 시스템이 애플리케이션이나 프로세스에 필요한 데이터를 미리 정확하게 예측해야 합니다. 시스템의 예측이 틀리면 프리페치로 인해 리소스가 낭비될 수 있습니다.
프리페치할 데이터를 예측하기 위해 컴퓨터 시스템은 사용 패턴을 분석하여 사용자와 애플리케이션이 일반적으로 데이터를 요청하는 방식을 파악합니다. 시스템은 단순한 패턴 일치 알고리즘을 사용하거나, 고급 머신 러닝을 사용하여 향후 동작을 예측할 수 있습니다. 대부분의 운영 체제는 이 정보를 사용하여 앱에 필요한 데이터를 미리 로드함으로써 애플리케이션 실행 시간을 단축합니다. 이 기능은 Windows에서는 SuperFetch, macOS에서는 Application Launch Services라고 합니다. Android 및 iOS와 같은 모바일 운영 체제도 앱 실행 시간을 단축하기 위해 프리페치를 사용합니다.
소프트웨어 애플리케이션과 하드웨어 장치에는 모두 프리페치 기능이 내장될 수 있습니다. CPU는 다음 실행 명령 집합을 캐시에 로드할 때 프리페치를 사용하는 경우가 많습니다. 시스템이 다음 프레임을 렌더링하는 데 텍스처 이미지가 필요할 것으로 예상하면 GPU는 해당 이미지를 VRAM으로 미리 가져옵니다. 데이터베이스 시스템은 쿼리가 실행되기 전에 해당 쿼리가 요청할 수 있는 데이터를 미리 가져오는 경우가 많습니다. 웹 브라우저는 현재 페이지에서 연결된 다른 웹 페이지의 데이터까지 미리 가져올 수 있습니다. 링크를 클릭했을 때 다음 페이지가 더 빠르게 로드되도록 스크립트, 이미지, 오디오 및 비디오를 다운로드하는 방식입니다.
지식 테스트하기