Si si jisty ze ti to opravdu zabira alokovanou pamet? To, co popisujes, vypada na zaplnovani mista v pameti, kde se ukladaji zbytky naposledy nactenych/zapisovanych souboru (v linuxu nazvane cached). Pak jeste existuje oblast pameti, kde se docasne ukladaji data, ktere maji byt zapsane na disk (buffers) - ty se pak jednou za cas nebo dle potreby syncnou na blokove zarizeni (disk, sit). Obe tyto oblasti nezabiraji volne misto v pameti pro aplikace, je to prostor volne fyzicke RAM (system by mel vyuzit pamet na 100% prave touto cache, pokud ne, rapidne klesa vykon a jadro systemu je pak spatne navrzeno). Taktez by se nemelo swapovat (postrada to smysl). Problem nastava, pokud mas hodne malo volne RAM, system potrebuje nejakou minimalni velikost prave na buffery nezapsanych souboru, takze musi odswapovat cast nepouzivanych veci. To je mozna tvuj pripad.
Vetsina filemanageru pouziva na kopirovani velkych bloku dat nebufferovane IO operace, takze se zaplnuje jenom mala cast vyrovnavaci pameti (buffers). Tusimze Total Commander neco takoveho (konecne!) v poslednich verzich pouziva. Naproti tomu (aspon v linuxu), existuji specialni funkce jadra, ktere provadeji blokove operace na urovni jadra - maji svoje buffery, jsou rychlejsi a ohleduplnejsi k ostatnim aplikacim snazici se o IO operace na stejnym zarizeni.
Windows NT kernel (a odvozeniny 2000, XP) by mel pracovat na podobnem principu, je to zaklad moderniho OS.
Je ale divne, ze ti to nastava jenom v jednom smeru. Mozna, ze velikosti read/write bufferu se na kazdem disku lisi a nektery se nevleze do pameti.
Zkratka a dobre: neco ti v tom systemu hnije.![]()