2

svn ls -vが通常のsvn lsよりも ~250 長く必要なのはどうしてでしょうか?

file:// スキーマを使用しても、どのトランスポートを使用しているかは問題ではないようです。違いはありません。また、memcached を有効にしてみましたが、改善もありませんでした。

面白いことに、最上位のディレクトリでは、このコマンドが最も遅くなり、深くなるほど速くなります。また、ディレクトリ内のアイテムの数は問題ではないようです。

クライアントとサーバーの両方に svn バージョン 1.7.1 を使用しています。そしてFSFSレポ形式。

ここでタイミング

svn ls -v svn://trac/koh/  0.01s user 0.01s system 0% cpu 39.960 total
svn ls svn://trac/koh/  0.00s user 0.02s system 6% cpu 0.243 total
4

2 に答える 2

1

サーバーに戻って必要な情報を取得する必要があるときにsvn ls、作業ディレクトリからローカルで情報を使用できる可能性があります。svn ls -vまた、クエリする情報の量でもあります。svn ls単にファイル名がsvn ls必要ですが、リビジョンと最後の作成者も必要です。

ただし、250倍の時間がかかるとは思いません。

$ time svn ls

real    0m0.514s
user    0m0.046s
sys     0m0.061s

$ time svn ls -v

real    0m0.530s
user    0m0.000s
sys     0m0.109s

これはすべてのクライアントで発生しますか、それとも使用しているマシンだけで発生しますか?これはWindowsですか、それともUnix / Linuxですか?リストしようとしているディレクトリの大きさはどれくらいですか?実行すると、作業ディレクトリに変更がありますsvn lsか?または、常にURLを使用しているので、サーバーにアクセスする必要がありますか?速度の問題がある他の何かに気づきましたか?

于 2012-08-24T13:16:32.350 に答える
1

「svn ls -v svn://svn」を実行すると、「get-locks」というサーバー ログ メッセージが表示され、そこに時間がかかることがわかりました。リポジトリ ファイル システムは NFS です。多くの「getattr」および「lookup」NFS 呼び出しが発生します。そのため、何らかの理由で SVN サーバーは get-locks のために多くの属性を取得しています。

何が原因なのかはまだわかりませんが…

于 2017-01-24T12:05:42.593 に答える