Firefox:通过将缓存移至 RAM 来提高浏览器速度...有什么缺点吗?

Firefox:通过将缓存移至 RAM 来提高浏览器速度...有什么缺点吗?

我读了一篇 DownloadSquad 文章,无需使用 RAM 磁盘即可加快 Firefox 页面加载时间,推荐了 Mozilla Firefox 的一个选项,将缓存移至 RAM。我明白为什么它会加快速度;那么为什么不默认启用它呢?

有缺点吗?

答案1

我猜想它默认不启用有两个原因:

  • 人们已经抱怨 Firefox 占用了太多内存。
  • 每个进程都有其可以(轻松)分配的最大内存量。将其中一部分用作缓存更有可能达到该限制,这可能会导致进程崩溃。(这实际上只对 32 位系统来说是个问题,但对大多数人来说可能都是这样。)

当 Firefox“泄漏内存”时,这些问题会更加严重,因为它显然会这样做(这导致了第一个问题)。

只要 Firefox 本身“适合内存”,我认为没有什么缺点。操作系统管理每个进程的内存中有多少是 RAM,并在必要时将页面存入磁盘。因此,最坏的情况是,您的 Firefox 缓存会存入磁盘。如果您为内存缓存分配的内存太少,您可能会看到性能下降,因为它将被迫通过网络获取,而网络比磁盘慢。

与其他进程的交互以及何时分页很难以“经验法则”的方式概括。因此,如果您在使用 Firefox 的同时使用其他程序(现在肯定占用了更多内存),您可能会看到一些影响。

但请继续尝试。

答案2

部分缺点是它会占用更多的 RAM,具体取决于您打开了多少个选项卡...此外,如果您打开了很多选项卡,并且运行了很多程序,Firefox 可能会减慢网页的打开/刷新速度...

Lifehacker.com 上的同一篇文章:http://lifehacker.com/5687850/speed-up-firefox-by-moving-your-cache-to-ram-no-ram-disk-required

答案3

这不能是默认设置,因为您不能假设每个用户都拥有大量 RAM 和 64 位操作系统。此外,您最终希望将缓存同步到磁盘,这样当您关闭 Firefox 或计算机时就不会丢失整个缓存。

我认为更好的方法是将缓存保留在文件系统上,但使用更智能的文件系统驱动程序,该驱动程序可以接收有关哪些优先级较低的文件需要同步到磁盘的提示,这样就可以在很长一段时间内将许多更改累积在内存中,而无需将更改提交到物理介质。这将提供与 RAM 磁盘相当的性能,而无需修改应用程序。

如果您使用的是 Windows,除非您使用第三方文件系统驱动程序(或者尝试 Windows Server 8 中的 ReFS;不确定它是否支持延迟提交),否则您可能会陷入困境。如果您使用的是 Linux,您可以尝试 ext4 的某些功能,例如延迟提交和延迟分配;您还可以禁用安全功能,该功能可防止文件在调用 fsync() 之前提交到磁盘。这在一般情况下会降低数据安全性,但对于缓存,您真的不在乎是否因随机电源故障而丢失数据,对吗?事实并非如此有价值的数据,并且您对性能比数据完整性更感兴趣。如果缓存损坏,那么 FF 可以删除它并重新开始。

至于我最初的想法,即文件系统可以“暗示”某些文件没有价值,不需要提交,除非内存压力迫使页面从内存中推出:那会很好,但我不知道任何平台上是否有任何活动 FS 可以做到这一点。听起来像是需要添加到 POSIX 标准中的东西。当今大多数文件系统违反标准,每 N 秒(通常 5 - 15 秒)自动将数据同步到磁盘,即使程序不调用 fsync(),所以现在我们需要一种方法来告诉它,“哇,等一下,我真的不关心这些文件,除非系统关闭,否则我宁愿你不要同步它们”。不过文件系统设计细节……不确定你是否喜欢这种东西 :)

相关内容