1 ポイント 投稿者 GN⁺ 2023-08-16 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2023-08-16
Hacker News の意見
  • V8 エンジニアの視点から見ると、SunSpider はひどいベンチマークで、いまだに追跡されているのが信じがたい
    過去15年近くにわたって JavaScript 性能エンジニアリングの方向性を誤らせ、実際のサイトには役立たない妙な最適化の小技を各エンジンに作らせてきた
    V8 はずっと前に、ほとんどのマイクロベンチマークから距離を置いている: https://benediktmeurer.de/2016/12/16/the-truth-about-traditi...
    とはいえ、Firefox の性能改善が重要でない、あるいは歓迎できないという意味ではない。ただ SunSpider は、見ることができるベンチマークの中でも最悪の部類だという意味だ

    • 正確に言えば、古いダッシュボードの一部としてまだ走らせているという意味で追跡している
      コストが低く、ときどき意図しない性能リグレッションを捕まえてくれることもある
      SpiderMonkey チームも、マイクロベンチマークを無視することには全面的に同意している。実際の性能とかなりよく相関する Speedometer を重視し、JetStream2 は必要な一部だけを選んで見ている
      それより古いものは目標ではなく単なる物差しなので、数値が上がれば良いことではあるが、別の理由で行っている作業の副作用としてそうなる場合に限られる
      特にこのグラフにある SunSpider の改善は、今年進めてきた Speedometer 作業の副作用だ
    • 挙げられているリンクは Speedometer を推しているが、そこでは Firefox がすでに Chrome を上回ったと知られている
      https://news.ycombinator.com/item?id=36770883
    • Firefox は複数のベンチマークで性能を追跡している
      過去1年間の複数項目で Chrome との性能比較を見ると、かなり多くで継続的な改善が続いている点は心強い
      https://arewefastyet.com/win10/benchmarks/overview?numDays=3...
    • 実際のサイトをベースにしたベンチマークは、良い考えであると同時に悪い考えにも見える
      良い理由は obvious だが、悪い理由はフィードバックループを作るからだ。人々は性能に合わせて開発し、性能は人々が開発したものに合わせて改善される
      V8 チームがこの問題にどのように対処したのか気になる
    • 公平に見ると、SunSpider が最初に登場したときは、当時のウェブに存在していた JavaScript エンジンの主要なボトルネックをかなり正確に反映していた
      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 は避けたほうがよい

  • 「Firefox が10年前の JavaScript ベンチマークで Chrome に楽勝している」と同時に、「より新しく、より厳しい JetStream 2.0 では Google Chrome が Firefox に今なお楽勝している」という話だ

    • macOS では Safari が Chrome をそれ以上の差で圧倒している
    • Firefox はとても好きだが、これを読むと少し苦い気持ちになる
  • SunSpider は2013年以降更新されていない点を指摘する必要がある
    JetStream のほうが現代の JavaScript ワークロードをよりよく代表しているが、そのベンチマークでも差は縮まりつつある

  • V8 エンジンで作業しているが、予想外のものが遅くなる脱最適化の地雷原
    例外ハンドラの構造がコードの性能特性を大きく変えることがあり、async/await は本当に運に近い。あるときは Promise のほうが速く、あるときは async ブロックのほうが速い
    一部の遅さは貧弱な仕様のせいにできる。なぜ ... の分割代入がイテレータを使うのか分からない
    ただ、V8 チームが完全には書かれていない現実のコードよりもベンチマークを追いかけているのではないかと気になる

    • ... がイテレータを使えないなら、特にジェネレータの力はずっと弱くなるだろう
    • V8 チームはそんなことはしない
      このベンチマークで V8 の性能が停滞しているのは、ずっと以前から気にしていなかったからだ
      Firefox は残念ながら気にする動機がある。ベンチマークが重要でなくても、遅れて見えればやはり印象が悪いからだ
    • むしろ逆では? https://v8.dev/blog/real-world-performance
      このテーマを数値と例で扱った、もっと最近の記事があった気がするが、今は見つけられない。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 の開発者ツールのほうがずっと扱いやすいと感じる
      Firefox のデザインは好みではないが、テーマとアドオンで直せる
    • UI が問題なら userchrome.css を少し手直ししてみればいい
      自分は treestyletab を望む形で使うためにそうしており、UI にこだわるなら userchrome.css はかなり多くの自由を与えてくれる
      しかも Nextcloud でデバイス間同期しているので、デバイスごとに個別に変える必要がない
    • 自分も同じように、UI が少し変わってくれたらいいと思う
      派手である必要はなく、標準の 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 は思ったより悪くない