Jak mogę przechowywać plik w pamięci podręcznej systemu Windows 7?

6

Czasami wiesz lepiej niż Windows, które pliki zostaną ponownie wykorzystane później. Załóżmy, że masz 8 GB pamięci i używasz tego samego 1 GB pliku co godzinę w aplikacji związanej z We / Wy (co zajmuje 1 sekundę, jeśli plik jest buforowany, i 1 minutę, jeśli nie). Teraz przetwarzasz jakieś 16 GB danych, które nie zostaną ponownie wykorzystane. Oczywiście często używany plik 1 GB zostanie wypchnięty z pamięci podręcznej. Byłoby dobrze, gdyby ktoś mógł powiedzieć systemowi Windows, aby zachował ten 1 GB pliku w pamięci. (Jeszcze lepiej, byłoby wspaniale, gdyby ktoś mógł powiedzieć systemowi Windows, aby nie buforował tych 16 GB danych, ale nie jestem optymistą, aby to zrobić.)

Gorzej jest z plikami w udziałach sieciowych: Windows usuwa pliki z pamięci podręcznej, nawet jeśli jest wolna pamięć. Jeśli natychmiast ponownie użyjesz pliku, nadal będzie on w pamięci podręcznej; ale jeśli zamkniesz plik i zaczekasz 30 sekund, pamięć podręczna zniknie, a system będzie musiał ponownie pobrać plik ze zdalnego serwera. Dla mnie jest to bardzo zauważalne, ponieważ korzystam z łącza sieciowego 3 Mb / s i pracuję z plikami o wielkości około 10 MB.

Sposób, w jaki biedak przechowuje plik w pamięci podręcznej, polega na ciągłym odczytywaniu pliku. Czy są jakieś lepsze sposoby? Czy znasz jakieś programy, które to robią?

(Jeśli można to łatwo zrobić w systemie Linux, daj mi również znać.)

netvope
źródło

Odpowiedzi:

3

Przychodzą mi na myśl dwie rzeczy.

  1. Skopiuj plik do RamDisk przed pierwszym użyciem i przenieś go z powrotem do pliku, gdy skończysz. ( Ramdysku QSoft jest za $ 12 została zalecana tutaj )
  2. Kup szybki dysk SSD i sprawdź, czy to pomoże (wystarczy)
Nifle
źródło
Nie ma więc sposobu, aby powiedzieć systemowi Windows, aby trzymał niektóre pliki w pamięci podręcznej dysku, np. .NET Framework?
OverTheRainbow
OverTheRainbow: Nie, nie ma. W jaki sposób te programy uzyskują dostęp do tych plików? MapViewOfFile, czy tradycyjny ReadFile / WriteFile (ugh)?
Jamie Hanrahan
0

Jest to możliwe w przypadku niektórych typów, na przykład dll:

System Windows buforuje zestaw bibliotek DLL, które są często używane, są to „znane biblioteki DLL”. Aby zachować plik dll w pamięci podręcznej, po prostu musi być częścią tego zestawu.

Kapelusz użytkownika
źródło
OP nie pyta o znane biblioteki DLL
pun
1
W rzeczywistości OP nie określa, o jakim typie pliku mówi, chociaż odniesienia do „danych”, udziałów sieciowych i Linuksa wydają się wykluczać możliwość zapytania o biblioteki DLL. (A teraz będę miał koszmary związane z plikiem DLL o pojemności 1 GB).
Scott