W systemie Windows 7 (64-bitowym) czytam 9000 plików o średniej wielkości. W sumie jest ponad 200 MB danych. Za pomocą Java (JDK 1.6.21) iteruję po plikach. Około 1400 pierwszych jedzie z pełną prędkością, ale potem prędkość spada do 4 ms na plik. Okazuje się, że główny koszt jest ponoszony po prostu przez otwarcie plików.
Otwieram pliki za pomocą new FileInputStream
(i oczywiście zamykam je na czas, aby uniknąć wycieków plików). Po pewnym dochodzeniu widzę, że pamięć podręczna dysku systemu Windows zużywa około 100 MB pamięci RAM, chociaż mam 8 GiB. Próbowałem zwiększyć rozmiar pamięci podręcznej za pomocą narzędzia CacheSet , ale wszelkie podane przeze mnie wartości są uważane za poza zakresem .
Próbowałem również LargeSystemCache
włączyć klucz rejestru, ale (po ponownym uruchomieniu) CacheSet
narzędzie nadal wskazuje, że używam 100 MB pamięci podręcznej (i nie zwiększa się podczas uruchomienia testowego). Czy ktoś ma jakieś sugestie, aby „zachęcić” system Windows 7 do buforowania moich 9000 plików?