私たちが「SourceTree 2.0 for Windows」の開発に取り組んでいた際、対処したかった重要なもののひとつがパフォーマンスでした。これは多くの方々にとってフラストレーションの原因となっていましたし、私たちはSourceTreeでの体験を向上させるためにもっとやれることがあるはずだと考えていました。私たちはパフォーマンスの特性や1つ1つのGitコマンドに焦点を当てるのではなく、むしろ全体的なアプローチを採りました。皆さんが日常的に好んで使用している多くのGitオペレーションと同等のスピードになるよう、UIの視覚的な複雑性を削減することについて考えたのです。

視覚的複雑性

視覚的複雑性とはアプリケーション内に表示されている要素の数に同等します。すなわち、ユーザーインターフェース上に存在する要素の数が多ければ多いほど、より複雑であると言えるわけです。SourceTreeはユーザーインターフェースとその中に含まれる要素をレンダリングするために、Windows Presentation Foundation (WPF) を使用します。WPFでは、インターフェースの要素が構成ツリーの一部となります。そして、SourceTreeのインターフェース内にある各要素は1つ以上の構成ノードを前述のツリーに追加します。通常、そのUI内で要素が変更 (例 イベントの発生、SourceTree内でオペレーションが実行されたなど) するとすぐに、レイアウトと再描画パスが発生します。ツリーがスキャンされて、レンダリング命令が構成ノードごとに実行されるためです。

視覚的に複雑なアプリケーション (まさに、SourceTree! ) にとって、こういったパスがユーザー視点ではUIがつっかえているように見えます。ですから、このことに照らした一般的経験則、そしてパフォーマンスについて得られたフィードバックからの結論は、SourceTreeのUI内にある要素数を減らすことでした。私たちはこのアプリケーションの視覚的複雑性を減らしつつも、同時に最も大切な要素の確認というメリットは失いたくないと考えました。実のところかなり長い間、この複雑性の削減には取り組んできました。それでは、SourceTree 2.0 for Windowsにおいて、旧バージョンと比較するとこれらの要素がどのように変化してきたのかを見てみましょう。

バージョンごとの視覚的複雑性 –Corefx Repo

SourceTree バージョン1.9/10: 1760個の視覚的なツリー要素


何が変更されたか?

  • ファイル差分がカスタムされたテキスト表示管理に修正されました。これは現在は仮想化されています (可視要素のみがツリーの一部になっています)
  • サイドバーがカスタムされた仮想化ツリービューに修正されました
  • ブックマークサイドバーはアイコンが少し削除されました
SourceTree バージョン2: 1414個の視覚的なツリー要素


どのよう行われたか?

  • ブックマークサイドバーが削除され、現在は「新規タブ」内に移動しています
  • ログビュー・ピルが視覚的なツリー要素をもつのではなく、カスタム機能で描画するように修正されました

キャッシングファイル・リスト
私たちが行ったもうひとつの改善は「ファイルのステータス」と「ログ / 履歴」のビュー間でビューをキャッシングすることでした。2.0以前、こられのビュー間での切り替えをするたびにファイルリストのリフレッシュを毎回ひき起こしていました。どれだけ多くのファイルがあるかによっては数秒の時間がかかってしまいます。2.0では、これらのビューが切り替え時に再作成されることはもうありません。リストがリフレッシュされるときに見られたようなつっかえが取り除かれています。

SourceTree バージョン1.9/1.10: キャッシングなし

SourceTree バージョン2.0: キャッシングあり

Gitのパフォーマンス

個別のGit機能のパフォーマンスはアプリケーションの総合的な反応性に絶大な影響を及ぼします。SourceTreeは頻繁にバックグラウンドタスクを実行するので、通常はあらゆる改善がより高い機能に対してカスケード効果をもたらします。2.0について、大部分のオペレーションでパフォーマンスを向上させるために、Gitオペレーションの多くでハイブリッド型のLibGit2ハンドラを追加することに決めました。
その結果が全てを物語っています。

そしてもちろん、Git LFSサポート、バンドル、SVNサポート、インタラクティブ・リベーシングなど、皆さんがご存知でお気に入りのその他の機能も改善されています。

SourceTree 2.0 for Windowsを今すぐ体験

SourceTree 2.0 for Windowsは今後を予感させるものです。そして、私たちは自分たちの努力の成果がユーザーの皆さんの下へと届けられることにワクワクしています。私たちの作業はこれで終わりではなく、よりパフォーマンスを向上させるためにさらに懸命な取り組みが今後も続いていくでしょう。もし皆さんに何らかのご意見があれば、ぜひ私たちにお聞かせください。

楽しいコーディングを!

SourceTree を無料でダウンロードしよう