필자가 작성한 응용 프로그램에서는 메모리 컨테이너 (C++ 표준 컨테이너가 많이 사용되지만 관련이 있다고 생각하지 않음)를 많이 사용합니다.단기간의 높은 VM 메모리 사용 효과 (Windows)
내 응용 프로그램의 "작업"중에 과도한 사용량 인 경우 개인 바이트 메모리 사용량이 1GB에 도달합니다.
이 컨텍스트는 약간의 컨텍스트와 마찬가지로 100,000 개의 파일과 관련된 사용자 시작 작업입니다. 사용자가이 작업을 시작한 다음 컴퓨터를 계속 실행합니다.
(내가 메모리로로드 파일과 같은 바보 아무것도하지 아니오 -이 공간은 진행중인 작업과 관련된 모든 메타 데이터입니다).
는 대부분의 사용자의 경우이 작업하는 동안 메모리 사용량은 무시할 - 그것은 50 "일이"5000 "일"의 insted하고 싶은 사용자의 단지 1 %입니다.
필자는 메모리 내 내용을 어떻게 든 디스크로 옮기는 과정을 시작했습니다. 스크래치 파일, 임베디드 DB. ". 분에 걸어 이러한 모든 솔루션은 기본적으로 디스크에 메모리를 캐시되는 가상 메모리가 무엇인지되지 않습니다.?"-
그러나 나는 생각했다.
나는이 데이터를 지속에 관심이 아니에요 - 그것은 순전히 내가 작업이 실행되는 동안에 액세스 할 필요가/일시 물건에 흠집이 있어요.
제 질문은 무엇을해야합니까?
은 그 1 %에 대한 주요 리팩토링을하고 싶지 않아,하지만 난 그 높은 메모리 풋 프린트와 응용 프로그램을 실행의 영향을 알고 싶어요.
어쨌든 Windows VM 관리자보다 훨씬 잘 할 수 없다고 말하는 것이 맞습니까?
이것은 어떤 조건에서 유해합니까? 그래, 그래, 만약 내가 진짜 메모리를 모두 다 써 버리면 페이지를 새로 고침하는 것이 엉망이 될 것이다. 그러나 어쨌든 나는 그것을 가지고 있지 않을까? 내장 데이터베이스?
건배,
존