我有许多 truecrypt 容器,其中包含随机文件,我正尝试将它们合并到另一组组织得更好的容器中。
要做到这一点,我需要复制每个集装箱内的所有内容我把它们放到一个中心位置,以便更好地对这些文件进行分类。
在执行此操作时,我注意到当我从已安装的容器中读取内容时,我的可用物理内存会线性下降直到可用的被消耗为止。
该物理内存被释放/仅当我卸载容器时才可用。
因此在我看来,truecrypt 驱动程序本身正在内存中缓存容器的文件内容期望文件一旦被读取,将来某个时候它还会被再次读取(也就是在我的用例中非常不正确因为一旦从容器中读取文件并将其复制到另一个驱动器,我就不会再次读取该文件)。
由于所有可用的物理内存都被 truecrypt 占用,我发现除非我卸载该卷,否则很难使用我的电脑,而且我的系统上有 16GB DDR3 RAM!。
我不希望 truecrypt 消耗所有可用的物理内存 -我如何让它消耗一小部分(0.5、0.7 等)可用物理内存?
使用 Windows 7 SP1,x64。
答案1
现代操作系统不需要释放内存。它们可以直接将内存从一种用途切换到另一种用途。因此,让几乎所有物理内存都处于使用状态并没有什么坏处。如果您以后想将其用于其他用途,它仍然可用。
你想着“我希望现在释放内存,以便以后使用”。但这真的没有任何意义。内存不需要现在释放,以后才能使用。如果某个应用程序在一分钟内需要 4GB 内存,操作系统就会给它这 4GB,无论它们是否可用现在。您现在可以将该内存用于一件事,稍后再用于其他事情。您不必做出牺牲。您现在可以拥有一个巨大的缓存,并且一旦您的系统内存需求发生变化,就可以立即将其丢弃。
如果你遇到了一些实际的性能问题,请描述它。但现代操作系统会不遗余力地解决它。不是让内存闲置不做任何事,从而浪费内存。如果内存有用途,他们就会用它。
我使用的比喻是,一个人走进一家每个人都在工作的工厂,然后问:“为什么没有一群员工坐在沙发上什么也不做,以防万一有工作需要完成?”答案是——因为有工作要做现在。如果以后有工作要做,那么他们会晚点再做。他们不需要坐在沙发上无所事事现在只是为了工作之后. 他们现在可以工作了和以后再说。没必要做出牺牲。