每当我从工具栏搜索框中搜索某些内容、提交表单或清除搜索框历史记录时,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 速度变慢的情况。我希望它也能对你产生同样的效果。