1

一部の git リポジトリは非常に大きなサイズになります.git。DragonFly BSD ディレクトリは 32​​4 MB で、FreeBSDはパック サイズで 0.5 GB を超え、アンパック サイズで 2 GB を超えます。

Gitweb、cgit、またはその他の Web ツールは、これらの巨大なリポジトリに対して何らかの種類の事前キャッシュを行いますか?

このような巨大なリポジトリの 2 つに対する Web インターフェイスの最適なリソース量 (メモリや CPU の制約など) をどのように推定できますか? ランダム ファイルのBlameまたはログ操作の応答時間はどのくらいですか?

4

2 に答える 2

1

git オブジェクト ストア モデルのおかげで、git リポジトリのサイズは gitweb や同様のツールでは実際には問題になりません (ちなみに、500MB のリポジトリ サイズはかなり小さいです。Linux カーネルは現在 1GB に近く、Android フレームワーク/ベースは数ギガバイトです)。

これは、gitweb がツリーを表示するためにリポジトリ全体をプルする必要がないためです。常に少数のオブジェクトのみを表示できます。つまり、コミットを表示するコミット オブジェクト、ディレクトリを表示するツリー オブジェクト、およびファイルを表示する blob オブジェクトです。

gitweb を遅くする可能性のある唯一の操作は、単一ファイルの履歴を表示することですが、これはあまり頻繁には発生しません。

gitweb の速度に関する限り、最善の最適化はmod_perl、Perl インタープリターが一度だけメモリにロードされるように、gitweb (Perl スクリプト) を で実行することです。これだけで gitweb がサクサク動くようになり、git 操作はほとんど目立たなくなります。

于 2013-05-21T09:57:55.110 に答える