![如何防止 SSD 上的 Firefox 在使用搜索框或提交表单时冻结?](https://linux22.com/image/1224709/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%20SSD%20%E4%B8%8A%E7%9A%84%20Firefox%20%E5%9C%A8%E4%BD%BF%E7%94%A8%E6%90%9C%E7%B4%A2%E6%A1%86%E6%88%96%E6%8F%90%E4%BA%A4%E8%A1%A8%E5%8D%95%E6%97%B6%E5%86%BB%E7%BB%93%EF%BC%9F.png)
每当我从工具栏搜索框中搜索某些内容、提交表单或清除搜索框历史记录时,Firefox 通常会冻结大约一秒钟。我怀疑这与自动完成功能有关。使用 Windows 7 的资源监视器,问题似乎出在以下文件中:
C:\Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile>\formhistory.sqlite-journal
我相信这是一个缓存数据库写入的临时文件。以下屏幕截图显示了六次不同搜索的响应时间非常长,并且驱动器 C 上的队列长度超出了范围:
我的 Firefox 配置文件位于 Intel X25-M G2 SSD 上。如果我在硬盘驱动器上创建新配置文件,似乎不会出现此问题。但是,我想知道 SSD 上为什么会出现此问题(因为这是一个令人讨厌的问题,与我购买 SSD 的原因相矛盾,而且其他应用程序也可能会出现此问题),以及如何防止此问题。如果 Firefox 以安全模式启动,并且使用最新的测试版,此问题仍然会出现。
更新:
- 对 Firefox 配置文件数据库进行 VACUUMing 对解决这个问题没有帮助。
- SSD 优化器英特尔固态硬盘工具箱也无济于事。
答案1
您可能会发现清理 SQLite 数据库很有好处。此命令应该可以完成此操作(在 Linux 上):
cd ~/.mozilla/firefox/dasda418.default
for i in *.sqlite
do
echo 'vacuum;' | sqlite3 $i
done
您的实际 Firefox 配置文件目录在哪里dasda418.default
。显然,您必须在 Firefox 未运行时执行此操作。在 Windows 上命令是:
for %i in (*.sqlite) do @echo VACUUM; | sqlite3 %i
这将压缩数据库,使其更小,并可能解决您的问题。
答案2
我同意 gorilla 关于清理数据库的观点。一种更直接的方法,独立于操作系统,是通过 Firefox 的错误控制台(工具菜单/错误控制台)
在代码文本框中粘贴此内容(只有一行):
Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL("VACUUM");
按“评估”。在数据库被 VACUUM 时,所有 UI 将冻结几秒钟
答案3
您是否尝试过禁用磁盘缓存?在磁盘属性 -> 硬件 -> 属性 -> 策略中:取消选中在设备上启用写入缓存 您的问题让我想起了我的问题,我认为这与选中此框有关。我不知道为什么我必须这么说,因为它应该可以提高性能,即使是 SSD 磁盘也是如此。但是自从我取消选中它后,我再也没有遇到 Thunderbird 速度变慢的情况。我希望它也能对你产生同样的效果。