Piszę dużo danych, które nie będą czytane od tygodni - ponieważ mój program uruchamia ilość wolnej pamięci na komputerze (wyświetlana z "bezpłatnym" lub "górnym") spada bardzo szybko, ilość pamięci, której używa moja aplikacja, nie wzrasta - ani ilość pamięci używana przez inne procesy.niebuforowane wejścia/wyjścia w systemie Linux
To prowadzi mnie do przekonania, że pamięć jest pobierana przez pamięć podręczną systemów plików - ponieważ nie mam zamiaru czytać tych danych przez długi czas, mam nadzieję ominąć bufory systemowe, tak, że moje dane są zapisywane bezpośrednio na dysk. Nie mam marzeń o doskonaleniu perf lub byciu super ninja, mam nadzieję wskazać system plików, że nie zamierzam wracać do tej pamięci w najbliższym czasie, więc nie trać czasu na optymalizację dla tych przypadków.
W systemie Windows napotykałem podobne problemy i naprawiłem problem, używając FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH - pamięć komputera nie została wykorzystana przez moją aplikację, a urządzenie było ogólnie bardziej użyteczne. Mam nadzieję na skopiowanie ulepszeń, które widziałem, ale w systemie Linux. W systemie Windows istnieje ograniczenie pisania na elementach o rozmiarach sektorowych, jestem zadowolony z tego ograniczenia dla zmierzonej wartości wzmocnienia.
jest podobny sposób na to w Linuksie?
to tylko problem, bo efekt jest pamięć podręczna jest używany do czegoś, co nigdy nie zostanie użyte. Pamięć podręczna jest pobierana od innych użytkowników, którzy mogą z nich korzystać i widzę zwiększone operacje we/wy. – stuck