出稼ぎ先で、subversionに悩まされてます。
悩んでいる理由はさて置き、とりあえず「遅い」です。
mercurialに慣れた筆者には、20倍は遅く感じます。
具体的に、どの程度遅いのか、測って見ました。
結論から言うと、subversionはローカルで動かしても、
mercurialの2〜3倍遅い。ということに成りそうです。
Cで書いてある筈のsubversionが
pythonで書いてあるmercurialより遅いってどうよ?
普通にベンチマークすると、真逆になる話ですね。
速度に影響するのは、実装言語じゃない。
データ構造とアルゴリズムであるという。
好例ですね。
/usr/bin/timeで簡単に測ってみると、
subversionは、sysの時間が長めに見えます。
disk IOがネックになってる?
カーネルソースは、バージョン管理の「具」としては、
上品な部類だと思います。
これで、巨大なバイナリやらも詰め込んだらどうなることやら。
linuxカーネル2.6.35のソース 66MB
tarの展開
real 1m2.495s
user 0m43.451s
hg init
hg add
real 0m9.517s
user 0m1.940s
hg commit
real 1m12.223s
user 0m54.771s
#更新数 33316
hg clone
real 0m44.199s
user 0m22.597s
svn import linux-2.6.35 file://*/SVFS -q
real 3m47.385s
user 1m7.488s
sys 0m26.194s
svn co file://$PWD/TEST-SVFS linux-co -q
real 2m13.232s
user 0m47.135s
sys 0m18.765s