概要
GitHubのUIが以前よりも著しく遅くなっている現状について指摘。 特にPR画面のタブ切り替え時のパフォーマンス低下が顕著。 クライアントサイドルーティングの実装が本来の目的に反しているとの批判。 大量DOMノードの描画やSVGアイコンの非効率利用など、技術的課題も言及。 GitHubのロードマップにパフォーマンス改善の兆しが見られるかを検証。
GitHub UIのパフォーマンス低下への疑問
- 最近のGitHub UI に顕著な 速度低下
- 以前は 高速だった操作 が、現在は 著しく遅延
- 開発者自身も GitHub上で開発 しているはずなのに、 この問題に気付かないのか 疑問
- 遅いウェブサイトに遭遇した場合の DevToolsによるプロファイリング 推奨
PR画面での具体的な事例
- PRの「Conversation」タブから「Files changed」タブへの 切り替えに5秒以上
- Turboによるプリロード とクライアントサイドの コンテンツ差し替え を採用
- 通常は パフォーマンス向上 目的だが、 逆効果 になっている事例
- 新しいタブで開く方が2倍速い という逆転現象
- クライアントサイドの 後処理がサーバーからHTML取得より遅い という本末転倒な状態
クライアントサイドルーティングの問題点
- 新しいローディングバー の導入が、遅さを強調する結果に
- SPA(シングルページアプリケーション) の本来の目的である 瞬時の画面遷移 が失われている
- フルページリロードに近い体験 を再現しているが、 むしろ遅い
- クライアントサイドルーティング の意義を再考する必要性
その他のパフォーマンス問題
- 複数PRやIssueの閲覧 が苦痛になるレベルの 遅延
- 20件のPRを確認するだけで 毎回5秒以上待たされる 非効率
- Diffビュー での 2秒間のフリーズ や SVGアイコンの大量インライン描画
- 数千個の 見えないプラスボタン をレンダリング
- 100,000個のDOMノード 描画によるウィンドウ全体のフリーズ
- DevToolsウィンドウのリサイズ でも3秒間の応答停止
パフォーマンス改善の展望とGitHubロードマップ
- 人気Issue の多くが パフォーマンス関連
- GitHubの ロードマップ に「Platform collaboration at scale」などの 関連分野 が存在
- パフォーマンス改善に関する具体的な記載 が見当たるかどうかの検証が必要
JavaScriptパフォーマンス最適化の基本
- JavaScriptのファイルサイズ最適化 による 読み込み速度の向上
- DOMノード数削減 による 描画パフォーマンスの改善
- アイコンや画像の再利用 で 無駄なレンダリングを回避
- クライアントサイド処理の見直し による 即時応答性の確保
- 不要なイベントや再計算の抑制 で ブラウザ負荷を軽減