Firefox 打开新标签页非常慢

Firefox 打开新标签页非常慢

每次我尝试通过单击另一个应用程序(例如 Thunderbird)中的链接来打开新选项卡时,整个桌面都会冻结(鼠标移动,但仅此而已)并且 10-15 秒内什么都不会发生。

只有在该时间过去之后,才会出现一个现有的 Firefox 窗口,其中的新选项卡会正常打开请求的 URL。

这个延迟困扰了我好几个月,我终于开始追踪它了。简单地运行一下ktrace -i firefox some://new/url,我发现它在 NVidia 中花了 5 秒钟ioctl——两次。

(注意,第三列列出的是从一开始经过的秒数):


> kdump -E
...
 62726 MainThread 0.114878 CALL  exit(0)
 62727 firefox  5.419059 RET   ioctl 0
 62727 firefox  5.419083 CALL  openat(AT_FDCWD,0x186bf4be2420,0x2<O_RDWR>)
 62727 firefox  5.419087 NAMI  "/dev/nvidia0"
 62727 firefox  5.419114 RET   openat 15/0xf
 62727 firefox  5.419116 CALL  fcntl(0xf,F_SETFD,FD_CLOEXEC)
 62727 firefox  5.419117 RET   fcntl 0
 62727 firefox  5.419119 CALL  ioctl(0xf,0xc01446ce,0x186bf4be2500)
 62727 firefox  10.649216 RET   ioctl 0
 62727 firefox  10.649233 CALL  openat(AT_FDCWD,0x186bf4be2420,0x2<O_RDWR>)
 62727 firefox  10.649236 NAMI  "/dev/nvidia0"
 62727 firefox  10.649305 RET   openat 16/0x10
 62727 firefox  10.649307 CALL  fcntl(0x10,F_SETFD,FD_CLOEXEC)
 62727 firefox  10.649309 RET   fcntl 0
 62727 firefox  10.649310 CALL  ioctl(0x10,0xc01446ce,0x186bf4be2500)
 62727 firefox  15.849375 RET   ioctl 0
 62727 firefox  15.849418 CALL  ioctl(0x8,0xc020462a,0x186bf4be24d0)

ioctl 0xc01446ce 是什么?我猜是 NVidia 特有的——这也可以解释整个桌面短暂冻结的原因...

能以某种方式避免这种情况吗?有些人在 Windows 上遇到了这个问题——对他们的建议是关闭“使用硬件加速(如果可用)”设置,但这在 FreeBSD 上不起作用。

还有什么我可以尝试的吗?

答案1

好的,我将 nvidia-driver 从 390.151 升级到了 390.154,不幸的是,这需要重新启动。因此,在重新启动之前,我还将 world/kernel 重建为最新的 13/stable...

重启后,新标签会立即打开——我不知道是什么原因。我之前尝试过只重启 Firefox——但这没有用——但一段时间(265 天)以来都没有完全重启过。

我想知道 NVidia 出了什么问题,导致 ioctl 花费了 5 秒钟——但重启后就不需要了……

答案2

读写控制用于 I/O,例如,到磁盘。如果 RAM 很少,并且 Firefox 需要使用磁盘(特别是 HDD)上的 Windows 页面文件,那么速度会大大降低。重新启动后,测试 Firefox,不打开任何标签...如果链接打开得很快,那么问题就是缓存了太多项目,而 RAM 太少。

如果说这个问题,那么有几种方法可以提供帮助。

  • 关闭不需要的标签。
  • 添加更多 RAM。
  • 从 HDD 切换到 SSD。

另一种可能是扩展程序正在后台执行某些操作,例如验证 URL 安全性。尝试在以下环境中运行 Firefox:故障排除模式。如果运行速度更快,则尝试确定哪些扩展正在减慢速度。

相关内容