Windows 7의 디스크 캐시를 늘리는 방법


18

Windows 7 (64 비트)에서 적당한 크기의 9000 파일을 읽습니다. 총 200MB가 넘는 데이터가 있습니다. Java (JDK 1.6.21)를 사용하여 파일을 반복하고 있습니다. 첫 번째 1400 정도는 최고 속도로 이동하지만 속도는 파일 당 4ms로 떨어집니다. 파일을 열면 주 비용이 발생한다는 것이 밝혀졌습니다.

파일을 사용하여 파일을 열고 있습니다 new FileInputStream(물론 파일 누출을 피하기 위해 제 시간에 파일을 닫음). 조사한 결과 8GiB를 사용할 수 있지만 Windows 디스크 캐시에서 100MB 정도의 RAM 만 사용하고 있음을 알 수 있습니다. CacheSet 도구를 사용하여 캐시 크기를 늘리려 고 했지만 제공 한 값 이 범위를 벗어난 것으로 간주 됩니다 .

또한 LargeSystemCache레지스트리 키를 활성화하려고 시도 했지만 (재부팅 후) CacheSet도구는 여전히 100MB의 캐시를 사용하고 있음을 나타냅니다 (테스트 실행 중에는 증가하지 않습니다). 누구든지 내 9000 파일을 캐시하도록 Windows 7을 "권장"하라는 제안이 있습니까?


3
디스크 캐시에 100MB 만 사용된다는 정보는 어디에서 얻습니까? 내가 아는 바에 따르면 Windows는 기본적으로 디스크 캐싱에 사용 가능한 모든 메모리를 사용합니다. 100MB의 값은 최소값처럼 보입니다.
Robert

1
문제의 일부는 Java 일 수 있으며 JVM입니다. JVM-publib.boulder.ibm.com/infocenter/javasdk/v6r0/… 을 조정하는 많은 옵션이 있습니다 . 최선의 방법은 C ++ 또는 FreeBASIC으로 작성하는 것입니다 (모두 네이티브 코드로 컴파일되고 OS가 허용하는 것만으로 제한됨).
Natalie Adams

답변:


4

Superfetch는 큰 파일을 모두 캐시하지 않고 액세스 한 부분 만 캐시합니다. 따라서 해당 파일에 액세스하려면 디스크 읽기가 여전히 필요합니다. 210MB의 디스크 캐시는 Windows의 모든 작은 파일에서 모든 것을 캐시 할 수 있습니다. 그리고 성능이 눈에.니다. 그러나 이것이 더 빠른 시스템에 영향을 미칠 것이라고 의심합니다.


2
수퍼페치 란 무엇이며이 질문과 어떤 관련이 있습니까?
jpaugh

4

CacheSet 도구를 사용하여 캐시 크기를 늘리려 고했지만 제공 한 값이 범위를 벗어난 것으로 간주됩니다.

  1. CacheSet "관리자 권한"을 명시 적으로 실행해야합니다. CacheSet 때 값이 범위를 벗어난 것을 말할 것이다 아무것도 잘못.
  2. 캐시 크기를 4KB로 나눌 수 있는지 확인하십시오

또한 CacheSet은 2006 년 32 비트 응용 프로그램이기 때문에 큰 값으로 문제가 있음을 알았습니다. 같은 API를 중심으로 64 비트 프로그램을 작성하여 4GB 이상의 캐시 크기를 설정할 수있었습니다. http : / /blog.thecybershadow.net/2012/12/14/64-bit-cacheset/

참고 : CacheSet 기사는 CacheMan에 대해 언급하지만 최신 버전은 CacheSet과 동일한 API를 사용하는 것 같습니다. 여러 사전 설정 및 기타 기능이있는 UI로 패키지되어 있습니다.


0

나는 이것이 오래된 것을 알고 있지만이 문제가 발생하는 다른 사람들을 위해 : 관리 권한으로 CacheSet을 수동으로 실행해야합니다. 그렇지 않으면 OutOfRange 오류가 발생합니다. 자동으로 권한을 요구하지는 않습니다.

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