ベンチマーク

バージョン管理システムのリポジトリサイズ2

昨日のサイズ比較と同じことを同一ファイルではなく、異なるファイルでやってみます。
ランダムな内容のファイルを追加した場合は、どのVCSも単純にサイズが増加しました。

ファイルの作成

内容の異なるファイルは、/dev/urandomで作成します。
条件を同じにするために予め100個のファイルを作成します。

$ mkdir data
$ for i in $(seq 1 100)
> do
>  dd if=/dev/urandom of=data/ur$i bs=1024 count=100
> done
...省略...
$

初期サイズ

昨日と一緒ですが念のため…

$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n
16      hg/.hg
84      bzr/.bzr
108     git/.git
148     svn-repo
$ 

1MBのファイルを1つ追加

1MBのファイルを1つ追加したサイズです。
/dev/zeroで生成したファイルと比較して圧縮の効率が悪くサイズが大きくなっています。

$ for i in svn git hg bzr
> do
>  ln data/ur1 $i
>  (cd $i; $i add ur1; $i commit -m "Add ur1")
> done
A  (bin)  ur1
追加しています  (バイナリ)  ur1
ファイルのデータを送信しています .
リビジョン 1 をコミットしました。
[master (root-commit) 4d192d7] Add ur1
1 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 ur1
adding ur1
Committing to: /home/ksaito/work/vcs/size/bzr/
added ur1
Committed revision 1.
$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n
152     hg/.hg
208     bzr/.bzr
256     git/.git
256     svn-repo
$ 

1MBのファイルを10個追加

$ for i in svn git hg bzr
> do
>  for j in $(seq 2 10)
>  do
>   ln data/ur$j $i
>   (cd $i; $i add ur$j)
>  done
>  (cd $i; $i commit -m "Add ur[2-10]")
> done
A  (bin)  ur2
A  (bin)  ur3
A  (bin)  ur4
A  (bin)  ur5
A  (bin)  ur6
A  (bin)  ur7
A  (bin)  ur8
A  (bin)  ur9
A  (bin)  ur10
追加しています  (バイナリ)  ur10
追加しています  (バイナリ)  ur2
追加しています  (バイナリ)  ur3
追加しています  (バイナリ)  ur4
追加しています  (バイナリ)  ur5
追加しています  (バイナリ)  ur6
追加しています  (バイナリ)  ur7
追加しています  (バイナリ)  ur8
追加しています  (バイナリ)  ur9
ファイルのデータを送信しています .........
リビジョン 2 をコミットしました。
[master 8262839] Add ur[2-10]
9 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 ur10
create mode 100644 ur2
create mode 100644 ur3
create mode 100644 ur4
create mode 100644 ur5
create mode 100644 ur6
create mode 100644 ur7
create mode 100644 ur8
create mode 100644 ur9
adding ur2
adding ur3
adding ur4
adding ur5
adding ur6
adding ur7
adding ur8
adding ur9
adding ur10
Committing to: /home/ksaito/work/vcs/size/bzr/
added ur10
added ur2
added ur3
added ur4
added ur5
added ur6
added ur7
added ur8
added ur9
Committed revision 2.
$ 
$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n
1088    hg/.hg
1132    bzr/.bzr
1164    svn-repo
1244    git/.git
$ 

さらに89個追加

$ for i in svn git hg bzr; do  for j in $(seq 11 100);  do   ln data/ur$j $i;   (cd $i; $i add ur$j);  done;  (cd $i; $i commit -m "Add ur[11-100]"); done
$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n
10188   bzr/.bzr
10224   svn-repo
10448   hg/.hg
10916   git/.git
$ 
タイトルとURLをコピーしました