- ここ数か月、SafariブラウザでGitHub Webサイトの速度が徐々に低下している
- 大規模なPRや数千行に及ぶコードファイルでは、画面レンダリングが事実上不可能になっている
- ブラウザのレンダリングプロセスが100%使用され、スクロール時に空白画面が表示されるほか、検索・コメント機能で深刻な遅延が発生
- CSSの変更とtransformの使用がSafariの性能バグと衝突して問題を引き起こしており、Chromeなど他ブラウザは比較的良好
- WebKitでは一部の性能パッチが適用されたものの、Safariの次回リリースまではGitHubフロントエンドチームによる暫定対応の必要性が言及されている
背景と主な問題
- 最近、SafariブラウザでGitHub Webサイトにアクセスした際の全体的な性能低下が目立っている
- 特にPull Request(PR)で数千行以上の変更を確認したり、大容量のコードファイルを閲覧したりする際、レンダリングそのものが不可能になるレベルに達している
- Activity MonitorではレンダリングプロセスがCPUを100%占有し、ページの描画速度があまりに遅いため、スクロールすると画面が空白として表示される
- 検索やコメントなどのインタラクティブ機能は深刻に遅延し、PRレビュー時にはチェックボックスをクリックするだけでも数秒以上かかる問題が発生
- 高性能なApple Siliconを搭載した最新のMacBook Proでも同様の現象が発生しており、Chromeや他ブラウザでははるかに快適に利用できる
問題の原因と分析
- Safari 18.6(およびベータ版/テクノロジープレビュー版)ユーザーから共通した不満が寄せられている
- 一部ユーザーは、Safari全体ではなくGitHubでのみ特に深刻な性能低下が起きていると述べている
- CSSセレクタと
transform: translateYの大量使用が、SafariのGPUレイヤー処理の限界と直接衝突していると説明されている
- GitHubフロントエンドがすべてのテキスト行を
transform: translateYで配置することで、Safariは数千ものGPUレイヤーを作成することになる
- Chromeはこのようなアニメーションがない場合、レイヤー生成を最適化するため、相対的にそこまで遅くならない
- 暫定策としてtransformプロパティを削除するスクリプトを適用すると高速化するが、位置の精度は完全ではない
ユーザー体験と各種報告
- 多くのユーザーが、PRでのレビュアー・ラベル追加やPR説明の編集など、あらゆる操作が数秒以上遅延すると不満を訴えている
- Safariでアクセスすると、コードブラウザやオートコンプリート(検索バー、コマンドパレットなど)のUIも非常に遅くなる
- iOS Safariでは、戻るのネイティブボタンなどブラウザ機能自体が正しく動作しない事例もある
- アクセシビリティ(VoiceOver)の面でも性能低下が深刻で、視覚障害のあるユーザーにとってはほぼ利用不能な状況になっている
解決と対応の議論
- WebKit(Safariエンジン)側では最近、このCSS/コンポジタ性能問題の一部パッチを進めたが、Safariの次回リリースまでは即時解決が難しい
- GitHubのエンジニアには、次期Safariリリース前を見据えたバグ対応の提案と、性能問題に関する事前のコミュニケーションの必要性が指摘されている
- さまざまなフロントエンドUIの変更(例: PRファイル変更UI、新機能など)が、性能低下と直接関係していると見られている
- 一部ユーザーは、Graphite.dev、GitLab、カスタムプロトコルルーター(例: Finicky、Veljaなど)を使った回避や代替UIの利用を行っている
その他のコメントと実利用者向けのヒント
- 一時的な回避策として、SafariでIssue/PRを作成した後、テーブル方式のラベル追加機能を使うよう勧める声がある
- 過度に複雑なCSSやエンジニアリング構造の変化、Chrome一強化への懸念、そして多様なブラウザ対応の必要性を強調する声もある
- 一部ユーザーは性能問題について批判的またはユーモラスなコメントを加えている(不要な感情的論争には議論上の注意が必要)
- 性能最適化が必要なフロントエンド開発手法の見直しや、マルチブラウザテストの重要性について内外から意見が出ている
結論
- GitHubの最近のUI構造の変化とCSSの活用方法がSafari固有のレンダリング特性と衝突し、業界標準のコラボレーション基盤で深刻なブラウザ上の不便を引き起こしている
- WebKitとGitHubの双方に積極的な改善姿勢が求められており、Safariユーザーやアクセシビリティ利用者を重視した対応が短期的に必要とされる
- 開発業務に支障をきたすほどのパフォーマンス問題であり、コミュニティ内で大きな共感と怒りが広がっている
1件のコメント
Hacker Newsの意見
GitHubのWebサイトは全体的に遅い。性能面でもUX/UI面でも、あらゆる意味で良いソフトウェアとは言えず、多くの人のKPIや企画の都合が入り込んだ結果物のように感じる。開発者向けソーシャルネットワークという点こそが最も「革新的」な部分で、日常的な開発作業ではあまりに平凡で、GitLabのほうがずっと良いと感じるほど。この問題はRailsのせいではなく、技術論で本質から目をそらすのは正しくないと思う
WebKitチームがこの2日間でGitHubの性能問題の改善を適用した 関連リンク。チーム内で大規模PR(1000ファイル以上)を作ることもあったが、同僚たちはPRの読み込みを待ちながら「開いたら承認するよ」と言っていた
MicrosoftがGitHubを買収すると、GitHubはほとんどすぐにJavaScriptレンダリング方式(SPA)へ移行した。以前は2011年型Mac MiniでJavaScriptを無効にしていてもGitHubを閲覧できたが、今ではJSを有効にしていても旧式ブラウザ互換性の問題でGitHubを使えない。どちらがより問題かは言いにくいが、両方に責任があると思う。新しい機器に替えることもできるが、意図的に旧型機器のサポートを放棄し、将来の機能性よりも計画的陳腐化を強いる雰囲気の中で、Web標準への信頼さえ揺らぐ感じがする
Reactへの批判は多いが、今回の問題はCSS transformの問題だ。関連リンクの内容を実際に読んでみることを勧める
Forgejo、Codeberg、SourceHutへの移行を勧める。GitHubやGitLabと比べると稲妻のように速い Forgejo / Codeberg / SourceHut
大規模組織でどうしてこうした問題が繰り返されるのか気になる。主要ブラウザのテストで性能問題は確実に見つかっていたはずなのに、誰かが強行承認したのかと思うと理解できない
React開発者としてこのスレッドを見ると、世の中の憎悪を実感する。非現実的なスケジュールや、バックエンドロジックまでフロントに載せるSPAの落とし穴が多い。React自体が間違った選択なのか、本当にうまく作られたReactアプリが存在するのか気になる
コンピューティング全般で、あらゆるものが遅くなった感じがする。最新のMac Studio M4 Max、64GB RAMを使っていても、2011年のMacBook Pro時代よりすべてのWebサイトが遅い
HNでGitHubがReactにUIを移行してから遅くなったという話をよく見るが、実際にそうなのか気になる。小規模プロジェクトでは影響がないので、確かな根拠を探したい
SafariだけでなくFirefoxでもGitHubは非常に遅く、あちこちでローディングスピナーが表示され、ページ遷移も以前より時間がかかる。以前は完全にうまく動いていたSSRを、いったいどんな指標でSPAに変えたのか理解できない