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.