매우 일반적이고 단순하게 말하면 가상 메모리 구현의 세부 사항을 고려하지 않고 개발자는 항상 VM 구현에 부족한 점을 알 수 있습니다.
개발자는 항상 "지금이 오디오 파일을로드 할 필요는 없습니다. 내부의 음악은 게임 오버 스크린에만 사용됩니다" 라고 말할 수 있습니다. 게임 오버 스크린 직후 개발자는 "물리적 메모리에이 오디오 클립이 더 이상 필요하지 않습니다. 스크린 오버 게임에만 사용됩니다." 라고 말할 수 있습니다.
OS에는 그러한 예언이 없습니다. 나중에 많은 페이지 오류가 발견 될 수 있으며, 일부 오디오 클립은 더 이상 액세스되지 않았기 때문에 실제 메모리에 더 이상 필요하지 않습니다. 그러나 예측을 후시로 전환하면 많은 페이지 오류가 발생하고 많은 페이지 오류가 비디오 게임처럼 시간이 중요한 소프트웨어에서 프레임 속도의 문제를 초래합니다. 그러한 딸꾹질을 피하고 싶다면 개발자의 예언이 실제로 도움이됩니다.
하드웨어와 소프트웨어에 관계없이 개념적으로 적용됩니다. 메모리의 페이징이 비싸다고 가정하면 개발자의 예측은 항상 그 비용을 줄이는 데 도움이 될 것입니다.
더 광범위하게 말하면 하드웨어 디자이너, 컴파일러 디자이너, OS / 드라이버 디자이너 및 응용 프로그램 개발자 사이에는 끝이 없습니다. 하드웨어 / 컴파일러 / OS / 드라이버 개발자는 종종 일반적인 메모리 액세스 패턴을 기반으로 평균 응용 프로그램의 속도를 높이기 위해 최적화를 구현하려고 할 때가 있습니다. "사람은 원하는대로 코드를 작성할 수 있어야합니다. "빠르다."그러나 해당 유형에 대한 생각이 있다면 일반적으로 성능 핵심 분야에서는 실패합니다. 성능이 중요한 개발자는 컴파일러, 하드웨어, OS, 드라이버 등의 복잡한 세부 사항을 배우기 시작하고 코드를 구체적으로 작성하기 시작합니다. 캐시 가능한 코드를위한 프리 페치, 핫 / 콜드 필드 분할, SoA 등의 가능한 가장 빠른 코드를 작성하기 위해 최대한 활용하도록 설계되었습니다. 그리고 그것은 결코 끝나지 않는 게임과 같습니다. 개발자가 성능을 위해 경쟁하기 때문에 이러한 사항은 성능이 중요한 분야에서 블랙 박스로 취급되지 않습니다.
개인적으로 나는 가상 메모리가 존재하지 않기를 바랍니다. 왜냐하면 너무 극단적이고 발생하는 경향이있는 방식으로 성능 예측의 추가 계층을 추가하기 때문입니다. 실제로 남용 할 수없는 지점으로 갈 때 너무 많은 성능 저하. 때로는 입력 필드에 취했을 때 실수로 여분의 자릿수 또는 두 자릿수를 입력 한 응용 프로그램을 사용하여 실제 메모리를 너무 빨리 소모하여 OS를 크롤링하는 방식으로 사용하는 경우가 있습니다. t 더 이상 진행률 표시 줄의 취소 버튼을 클릭하고 Ctrl + Alt + Del을 방해하여 프로세스를 종료하고 음료를 흘리는 동안 저를 저주하는 동안 10 분 동안 기다려야 다시 사용할 수있는 지점으로 돌아갑니다. 페이지 파일이 SSD에 저장되어 있음에도 불구하고 이 경우 "메모리 부족"오류 또는 무언가를 선호했을 것입니다.이 시점에서 17 개의 포르노 탭 (어쨌든 즐겨 찾기를 즐겨 찾기에 추가)을 닫아 메모리를 확보 한 다음 즉시 진행할 수 있습니다. 내 사업 재개