SunSpiderでFirefoxがついにGoogle Chromeを上回る
(phoronix.com)- Firefoxが古いSunSpider JavaScriptベンチマークでChromeより高速になったが、このテストはすでにJetStreamに置き換えられている性格が強い
- 最近のFirefox Nightly Newsは、SunSpiderでChromeを上回っているようだと明かし、公開された数値もFirefox優位を示している
- ベンチマークの出典はAreWeFastYet.comで、比較対象は約10年前のJavaScript性能テスト
- より新しく負荷の高いJetStream 2.0では、Google Chromeが依然としてFirefoxを容易に上回っている
- この1か月ほどでFirefoxはSunSpiderの実行速度だけでなく、HTTP/2のアップロード速度など複数の改善を進めている
古いSunSpiderで確認されたFirefox優位
- Mozillaの開発者たちは、FirefoxがGoogle ChromeよりSunSpider JavaScriptベンチマークで高速な結果を出したことを前向きに受け止めている
- SunSpiderは約10年前のJavaScriptベンチマークで、現在はJetStreamベンチマークがこれに取って代わっている
- 最近のFirefox Nightly Newsは、「We’re now apparently beating Chrome on the SunSpider JavaScript benchmark!」と述べた
- 公開された数値は、Firefoxがこの古いJavaScriptベンチマークでChromeを容易に上回っている流れを示している
- ベンチマークデータはAreWeFastYet.comによるもの
最新ベンチマークではChrome優位が維持
- より新しく要求水準の高いJetStream 2.0ベンチマークでは、Google Chromeが依然としてFirefoxを容易に上回っている
- Firefoxはここ約1か月でSunSpider JavaScriptベンチマークの実行速度を大きく引き上げた
- 同期間にはHTTP/2アップロード速度の改善をはじめ、複数の作業も進められた
- 最新のFirefox Nightlyビルドの変化はFirefox Nightly Newsで確認できる
1件のコメント
Hacker News の意見
元 V8 エンジニアの視点から見ると、SunSpider はひどいベンチマークで、いまだに追跡されているのが信じがたい
過去15年近くにわたって JavaScript 性能エンジニアリングの方向性を誤らせ、実際のサイトには役立たない妙な最適化の小技を各エンジンに作らせてきた
V8 はずっと前に、ほとんどのマイクロベンチマークから距離を置いている: https://benediktmeurer.de/2016/12/16/the-truth-about-traditi...
とはいえ、Firefox の性能改善が重要でない、あるいは歓迎できないという意味ではない。ただ SunSpider は、見ることができるベンチマークの中でも最悪の部類だという意味だ
コストが低く、ときどき意図しない性能リグレッションを捕まえてくれることもある
SpiderMonkey チームも、マイクロベンチマークを無視することには全面的に同意している。実際の性能とかなりよく相関する Speedometer を重視し、JetStream2 は必要な一部だけを選んで見ている
それより古いものは目標ではなく単なる物差しなので、数値が上がれば良いことではあるが、別の理由で行っている作業の副作用としてそうなる場合に限られる
特にこのグラフにある SunSpider の改善は、今年進めてきた Speedometer 作業の副作用だ
https://news.ycombinator.com/item?id=36770883
過去1年間の複数項目で Chrome との性能比較を見ると、かなり多くで継続的な改善が続いている点は心強い
https://arewefastyet.com/win10/benchmarks/overview?numDays=3...
良い理由は obvious だが、悪い理由はフィードバックループを作るからだ。人々は性能に合わせて開発し、性能は人々が開発したものに合わせて改善される
V8 チームがこの問題にどのように対処したのか気になる
V8 にも当てはまり、V8 はリリース時に独自のベンチマーク一式を出してはいたが、プロパティアクセスに過度に偏っており、SunSpider が偶然扱っていた初期ページロード寄りの部分は不足していた
もちろんそれは15年前の話なので、当時のベンチマークが今も有用な何かを反映しているとは考えにくく、今ではほぼリグレッション検出以外の価値は大きくない
自分が持っているすべてのコンピューターとスマートフォンでは Firefox だけを使っている
これまで性能には非常に満足しており、今後も改善が続くことを心から願っている。Firefox を使えないときの第二候補は Brave で、Chromium は最後の選択肢だ
Firefox ではこれらの拡張機能を強くおすすめする: AdNauseam https://addons.mozilla.org/en-US/firefox/addon/adnauseam/, Consent-O-Matic https://addons.mozilla.org/en-US/firefox/addon/consent-o-mat..., Firefox Multi-Account containers https://addons.mozilla.org/en-US/firefox/addon/multi-account..., I don't care about cookies https://addons.mozilla.org/en-US/firefox/addon/i-dont-care-a...
下で出ているように Avast を信頼していないなら、Consent-O-Matic は避けたほうがよい
https://www.theregister.com/2022/09/21/avast_buys_i_dont_car...
Avast を信頼していないなら、I still don't care about cookies というフォークに乗り換えるほうがよさそうだ: https://github.com/OhMyGuus/I-Still-Dont-Care-About-Cookies
「Firefox が10年前の JavaScript ベンチマークで Chrome に楽勝している」と同時に、「より新しく、より厳しい JetStream 2.0 では Google Chrome が Firefox に今なお楽勝している」という話だ
SunSpider は2013年以降更新されていない点を指摘する必要がある
JetStream のほうが現代の JavaScript ワークロードをよりよく代表しているが、そのベンチマークでも差は縮まりつつある
V8 エンジンで作業しているが、予想外のものが遅くなる脱最適化の地雷原だ
例外ハンドラの構造がコードの性能特性を大きく変えることがあり、
async/awaitは本当に運に近い。あるときは Promise のほうが速く、あるときは async ブロックのほうが速い一部の遅さは貧弱な仕様のせいにできる。なぜ
...の分割代入がイテレータを使うのか分からないただ、V8 チームが完全には書かれていない現実のコードよりもベンチマークを追いかけているのではないかと気になる
...がイテレータを使えないなら、特にジェネレータの力はずっと弱くなるだろうこのベンチマークで V8 の性能が停滞しているのは、ずっと以前から気にしていなかったからだ
Firefox は残念ながら気にする動機がある。ベンチマークが重要でなくても、遅れて見えればやはり印象が悪いからだ
このテーマを数値と例で扱った、もっと最近の記事があった気がするが、今は見つけられない。chromium/chrome チームのブログだったかもしれないし、他の人なら見つけられるかもしれない
最近 Chrome が悪くなっているという話が多いので、自分の Chrome 拡張機能 IPvFoo を Firefox でもきちんと動くように数日かけて磨いた
IPvFoo は IPv6 移行を観察するためのツールだ。技術的には 2017 年から Firefox 版もあったが、Firefox がいつか直してくれることを期待していた互換性バグが多かった
結局、残った問題を回避することにし、今では共通コードベースで Chrome/Firefox の機能同等性がそろっている: https://github.com/pmarks-net/ipvfoo
uBO を有効にした Firefox は Chromium ベースのブラウザより 100% 以上速い
Chromium ベースのブラウザでは制約のせいで uBO がまともに動作しない
改善は実際にある
まだリリース前だがオープンソースの最新 Speedometer 3.0 で今テストし、各ブラウザの最新バージョンを使った
Firefox Nightly(Gecko) 11.6, Safari TP(WebKit) 11.4, Chrome Canary(Blink) 9.9
https://github.com/WebKit/Speedometer
正直、自分にとって Firefox はデバッグツールが Chrome 並みになり、タブ UI がもう少し洗練されるまでは第2候補だ
毎日 Firefox を使いたいが、使うと開発速度が落ちるように感じる
Firefox のデザインは好みではないが、テーマとアドオンで直せる
自分は treestyletab を望む形で使うためにそうしており、UI にこだわるなら userchrome.css はかなり多くの自由を与えてくれる
しかも Nextcloud でデバイス間同期しているので、デバイスごとに個別に変える必要がない
派手である必要はなく、標準の Chromium くらいシンプルならそれでいい
最近 Firefox の性能リグレッションを見てバグレポートを出そうと調べたところ、性能をかなりオープンに追跡するツール群が注目されているようだ
トレースプロファイルを簡単にアップロードして共有できるのも役に立つ: https://firefox-source-docs.mozilla.org/testing/perfdocs/ind...
Firefox の性能に関心があるなら、専用ブログが継続的に情報を知らせてくれる: https://blog.mozilla.org/performance/
特定の Web サイトで Chromium が目に見えて速いと感じたなら、簡単な報告には https://webcompat.com/ がある。ただし GitHub Issues に慣れた立場から見ても、Bugzilla は思ったより悪くない