我有許多 truecrypt 容器,其中包含隨機文件,我試圖將這些文件合併到另一組容器中,這次容器組織得更好。
為此,我需要複製每個容器的所有內容我有一個中心位置,可以更好地對這些文件進行分類。
在執行此操作時,我注意到當我從已安裝的容器中讀取內容時,我的可用實體記憶體呈線性下降直到可用的被消耗掉。
此物理記憶體被釋放/僅當我卸下容器時才可用。
因此在我看來,truecrypt 驅動程式本身正在記憶體中快取容器的檔案內容期望一旦讀取了一個文件,它就會在未來的某個時候再次被讀取(即在我的用例中非常不正確因為一旦從容器中讀取該檔案並將其複製到另一個驅動器,我就不會再次讀取該檔案)。
因為所有可用的實體記憶體都被 truecrypt 消耗了,我發現在卸載磁碟區之前很難使用我的計算機,而且我的系統上有 16GB DDR3 RAM!。
我不希望 truecrypt 消耗所有可用的實體記憶體 -我如何讓它消耗一小部分(0.5、0.7等)可用實體內存?
使用 Windows 7 SP1,x64。
答案1
現代作業系統不需要記憶體空閒。他們可以直接將記憶體從一種用途切換到另一種用途。因此,使用幾乎所有實體記憶體並沒有什麼壞處。如果您以後想將其用於其他用途,它仍然可以使用。
你在想「我現在希望該記憶體是空閒的,這樣我以後就可以使用它」。但這確實沒有任何意義。記憶體不需要現在釋放以供以後使用。如果某個應用程式在一分鐘內需要 4GB 內存,作業系統將給它這 4GB,無論它們是否空閒現在。現在您可以將該內存用於一件事,稍後再將其用於另一件事。你不必做出犧牲。現在您可以擁有一個巨大的緩存,並在系統記憶體需求變化時立即將其丟棄。
如果您遇到一些實際的效能問題,請描述它。但現代作業系統卻出了問題不是讓內存無所事事,浪費內存。如果他們能用它來做任何事,他們就會這麼做。
我用的比喻是,一個人走進一家每個人都在工作的工廠,並問道:“為什麼沒有一群員工坐在沙發上無所事事,以防稍後需要完成一些工作?”答案是──因為還有工作要做現在。如果稍後有工作要做,那麼他們稍後再做。他們不需要坐在沙發上無所事事現在只是為了讓他們能夠工作之後。他們現在可以工作了和之後。沒有必要做出犧牲。