FancyCache 使用了 16 GB RAM 吗?

FancyCache 使用了 16 GB RAM 吗?

我目前使用 4 GB 的 RAM 作为 FancyCache 的 RAM 缓存,它正在缓存我的 SSD。它在游戏中运行良好,因为加载时间几乎为零,它与 Adob​​e 套件配合良好。它还减少了我的 SSD 的使用,这是一件好事。

我总共有 16 GB 的 RAM,我的问题是,您是否认为获得 16 GB 的额外 RAM 并将其用于 FancyCache 会有益?

谢谢!(我意识到这个问题不太注重问题,如果这不是合适的论坛,我很抱歉)

我的电脑规格:华硕 P9X79 Deluxe、i7 3930K @ 4.3 Ghz、Corsair Vengence LP 4x4 GB、三星 SSD 830 256 GB、Win 7 Pro x64

答案1

截至目前(2012 年 5 月),我认为额外购买 16 GB 或 RAM 用于 FancyCache 是物有所值的。如果您除了使用大型应用程序外还玩几款不同的游戏,那么 16 GB 缓存应该不会有任何问题。16 GB 额外 RAM 的投资并不多,而且它可以确保您的系统在大型应用程序和游戏之间切换时保持快速响应。

答案2

我拥有 48GB RAM(X58 平台,6x8GB 内存条),并在 Win7 下将 16GB 专门用于 FancyCache。FancyCache 带有内置监控功能。到目前为止,监控使用情况是做出这一决定时最重要的事情。

我使用这个盒子破解密码,使用大型字典(~400GB),所以我希望至少在 RAM 中保存一些最常用的字典。令我惊讶的是,由于我的脚本设置方式,我循环遍历所有具有不同字典的同一组哈希,通过不断读取新字典有效地“弄脏”了我的缓存。因此,我的缓存命中率非常糟糕(大约 0.1%)。所以我像这样翻转了顺序:

for hash in hashes; 
   for dict in dicts; 
      crack hash with dict

for dict in dicts; 
   for hash in hashes;
      crack hash with dict`  

这样,刚刚读取的字典将保留在内存中,等待下一组哈希值,下一次读取将从 RAM 而不是磁盘进行。
这个小小的顺序翻转唤醒了读取缓存,因为现在它的平均读取率约为 80%。这个观察结果非常有价值。
此外,将 FancyCache 限制为仅在包含您知道将有大量 IO 的数据的磁盘上工作,而不是依靠操作系统来弄清楚,也非常有益。

我做的第二件最好的事情是观察写入缓存行为。事实证明,有些程序在谨慎行事,并尝试在每次小机会之后转储数据,而不是将多个写入合并为频率较低但较大的写入。当以完全同步的方式完成时,这会导致程序阻塞,直到写入完成。我的盒子在 UPS 上,所以我不必担心在写入缓存完成写回之前发生崩溃。这对我的主程序的原始性能有很大帮助,但它也明显有助于系统的流畅性,因为系统不会在写入缓存忙于将脏缓冲区提交到磁盘时每次都停止运行。当然,如果没有 UPS(如果是笔记本电脑,则没有电池),这将是一个危险的情况。

如果“工作集”大小,所有这些都会引发一个基本的 CS 问题。如果您正在处理一个 4GB 的文件,那么可能 4GB 多一点就足够了(除非应用程序试图在内存中存储多级撤消)。除非您实际使用内存,否则为 FancyCache 分配内存是没有意义的。如果您接近 100%,请将其调大,但如果只有 2%,那么您只是在浪费 RAM。

相关内容