为什么在玩 HTML5 游戏(“帝国之炉”)时 Firefox 比 Chrome 慢那么多?

为什么在玩 HTML5 游戏(“帝国之炉”)时 Firefox 比 Chrome 慢那么多?

我正在笔记本电脑上考虑转换我玩的一个 Flash 游戏(“帝国熔炉”) 目前在 HTML5 中可用。我很难理解为什么 Firefox 比 Chrome 慢这么多。

操作系统 + 硬件 + 浏览器

操作系统

硬件

  • 中央处理器:英特尔® 酷睿™ i7-7700HQ, 第 7 代, 2.80 - 3.80 GHz, grep flags /proc/cpuinfo:

    fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
    
  • 内存:32 GB DDR4 2400MHz 双通道(更新,最近换了)

  • 图形处理器NVIDIA GeForce GTX 1060Max-Q 设计、6GB内存
  • 展示:集成笔记本电脑显示屏,15.6 英寸,分辨率 3840x2160
  • 游戏帝国熔炉

Web 浏览器


HTML5 基准测试工具

我已经采取了HTML5 AnTuTu 基准测试由于我不确定另一个 HTML5 基准,因此我无法进行测量,请参见下文:

安兔兔在 Chrome 中


Chrome 中的 AnTuTu


安兔兔在 Firefox 中


Firefox 中的 AnTuTu


我现在已经在 Windows 上完成了这些测试,并且我发现将它放入这个问题中并没有什么太大的区别。

答案1

发现硬件瓶颈


在玩游戏时,我称之为撕裂是由于 Firefox 的 CPU 使用率过高造成的。


Firefox 中的这款 HTML5 游戏

Firefox 中的游戏


Chrome 中的这款 HTML5 游戏

Chrome 中的游戏


它在其他游戏中的表现很可能会有所不同,所以我在这里不得出任何结论。


解决方案/合理解决方案

帮助这场比赛的是启用以下内容about:config

layers.acceleration.force-enabled

此外,我注意到今天更新到 71.0 版本后性能有所提升 ( 71.0+linuxmint2+tricia官方发布说明),不过这​​也许只是我的感觉。

现在的游戏感觉明显更快, 自己试试吧!


看起来,现在大部分图形繁重的工作负载都已经转移到我的 GPU 上了。top片段:

top - 07:59:30 up  3:23,  1 user,  load average: 1,44, 0,86, 0,77
Tasks: 256 total,   2 running, 193 sleeping,   0 stopped,   0 zombie
%Cpu(s): 11,0 us,  5,4 sy,  0,0 ni, 83,5 id,  0,0 wa,  0,0 hi,  0,2 si,  0,0 st
KiB Mem : 32669556 total, 25297888 free,  4186864 used,  3184804 buff/cache
KiB Swap:        0 total,        0 free,        0 used. 27273988 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND      
 5466 vlastim+  20   0 3359676 554668 150028 S  11,0  1,7  33:18.16 Web Content  
 5387 vlastim+  20   0 1131428 497656 299124 S  21,3  1,5  32:23.13 GPU Process  
 5352 vlastim+  20   0 3835144 553044 238576 S  12,0  1,7  24:04.95 firefox      

并由此证实nvidia-smi片段:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21       Driver Version: 435.21       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0  On |                  N/A |
| N/A   50C    P0    40W /  N/A |   1346MiB /  6078MiB |     48%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1413      G   /usr/lib/xorg/Xorg                           503MiB |
|    0      2799      G   cinnamon                                     139MiB |
|    0      5352      G   /usr/lib/firefox/firefox                       2MiB |
|    0      5387      G   /usr/lib/firefox/firefox                     443MiB |
|    0     12394      G   /usr/lib/firefox/firefox                     254MiB |
+-----------------------------------------------------------------------------+

答案2

之所以会发生这种情况,是因为 Firefox 和 Chrome 使用两种不同的方式管理主内存 (RAM)。您经常会看到 Chrome 占用我们设备大量的内存和电池。这是因为 Chrome 将您打开的每个选项卡视为一个新的 Web 浏览器实例,并分配一个单独的内存块,而 Firefox 使用传统的内存管理方法。它为应用程序分配一大块内存。当您打开更多选项卡时,这部分分配中的一小部分会分配给每个新选项卡,因此当您打开更多选项卡时,Firefox 的速度就会变慢。

希望这对你有帮助。谢谢。

相关内容